は、例として次のクラスを取る移入されません:私はpopulateArray
メソッドを呼び出すとJavaScriptのメソッドは、メソッド(配列)
function TestClass() {
// public property
this.testArray = [];
// public function
this.populateArray = function() {
for (var y = 1; y <= 9; y++) {
for (var x = 1; x <= 12; x++) {
this.testArray[x + '-' + y] = true;
}
}
};
}
、期待どおりに動作しますが、それはtestArray
プロパティを変更しません。
私は、このメソッドを抜き出してプロトタイプで追加しようとしましたが、これも機能しません。
TestClass.prototype.populateArray = function() {};
メソッドを呼び出しているコードはここにある:
var testClass = new TestClass();
testClass.populateArray();
メソッドはプロパティに移入されていないのはなぜ?
配列にデータが入力されているかどうかをどのようにテストしますか?問題はおそらく配列要素ではなく、配列に任意のプロパティを追加していることでしょう。配列の代わりにオブジェクトを使うべきだと思われます。私。 'var foo = []; foo.bar = 42; 'foo.bar'は配列要素と見なされないので' foo.length; 'は' 0'になります。このような混乱を避けるためには、配列の代わりにオブジェクト(またはより良い: 'Map')を使用してください。 –
_array_を使用していますが、_ objectプロパティ_を設定しています。 JavaScript内の配列はインデックス番号のみです。文字列キー(たとえば、他の言語ではハッシュと呼ばれるもの)を使用する場合は、オブジェクト{'}'を使用する必要があります。配列上にランダムなプロパティを設定することはできますが、それは決して形にならないか、「公式」なので、_bad practice_です。 – vlaz
そのメソッドを呼び出した後、配列がどのように見えると思われましたか? – trincot