サンプル:オブジェクトの配列から検索すると、未定義のオブジェクトのプロパティが表示されますか? JavaScriptコードの
function a() {
this.array1 = [];
this.addToArray = function(name) {
this.array1.push(new b(name));
return true;
}
this.searchForName = function(name) {
for(var i in this.array1) {
alert(i.name);
}
}
function b(name) {
this.name = name;
}
}
は、私は、HTML文書でこのJavaScriptファイルが含まれています。私はこのコードを持っているHTMLドキュメントのスクリプトタグ内に:このコードを実行する
var myObject = new a();
myObject.addToArray("test1");
myObject.searchForName("test1");
を、私がポップアップすることで"test1"
との警告を期待するが、代わりにそれは未定義としてポップアップ表示されます。しかし、Chromeのデバッガでは、myObjectの内部に配列のアイテム0があることが示されています。ブレークポイントを使用してコードをテストすると、警告が呼び出された時点で、i.nameが定義されていないことが示されます。これには何が問題なのですか?
配列の要素をループするときに 'for ... in'を使用しないでください。 – mhitza
@mhitza:それは私の答えが言うことではありませんか? ; o) – user113716
Lol、私は最後の文を逃したかと思いません:) – mhitza