以下の JavaScript コード:-
var a = [];
for (i in a) {
alert(i);
}
$family、$constuctor、each、clone、clean、invoke、associate、link、contains、append、getlast、getRandom、include、combine、erase、empty、flatten、pick、hexToRgb、rgbToHex として o/p を取得しています。
その理由を誰か説明できますか?配列オブジェクトのプロパティで何かをしなければならないのですか?もしそうなら、なぜすべてのプロパティが警告されないのですか? また、 var a = {} のような空のオブジェクト リテラルを取得すると、o/p は取得されません。
さて、上記のコードを次のように変更すると:-
var a = [9,2];
for (i in a) {
if (a.hasOwnProperty(i)) {
alert(a.hasOwnProperty(i));
alert(i);
}
}
出力が 0 と 1 になるのはなぜですか? これらはこの Array オブジェクトのプロパティですか (インデックスでもあります)?