/ /新しい配列を作成し、1行で挿入します-Javascript OOP-javascript、jquery、arrays

新しい配列を作成し、1行にプッシュする - Javascript OOP - javascript、jquery、arrays

私は、このコードを関数で定義しました。 array 次に、次の行にプッシュします:

function Spot(value) {
this.x = null;
this.y = null;
this.values = [];
this.values.push(value);
}

私はこれを試しました:

this.values = [].push(value);

そして

this.values = (this.values || []).push(value);

しかし、失敗しました。コードに何か問題がありますか.....

回答:

回答№1は2

配列初期化構文がありません:

var x = [ 1, 2, 3 ];

あなたの場合、これは次のようになります:

this.values = [ value ];

詳細はこちら: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array


コード:

var x = ([]).push("y");

配列を生成し、それに値をプッシュする必要があるように見えます。配列を作成しますが、配列は返されません x、配列の新しい長さが返されます、すなわち 1.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push

push()メソッドは、配列の最後に1つ以上の要素を追加し、 配列の新しい長さを返します。 [強調鉱山]


回答№2については2

配列の値を取得するだけです。

function Spot(value) {
this.x = null;
this.y = null;
this.values = [value];
}

var point = new Spot("foo")

console.log(point);


回答№3の場合は1

配列を作成してプッシュする方法 value それは正しいです。ただし、関数内で作成されるため、アクセスする必要があります this 何らかの方法で関数の外部にあるオブジェクト。

何も返さないため、コンストラクタとして呼び出すことができます。

var spot = new Spot()
function Spot(value) {
this.x = null;
this.y = null;
this.values = [];
this.values.push(value);
}

var spot = new Spot();

コンストラクターとして呼び出したくない場合は、単に返すことができます this オブジェクト。

function Spot(value) {
this.x = null;
this.y = null;
this.values = [];
this.values.push(value);
return this;
}