在下面的 JavaScript 代码中:-
var a = [];
for (i in a) {
alert(i);
}
我得到 o/p 为 - $family、$constructor、each、clone、clean、invoke、associate、link、contains、append、getlast、getRandom、include、combine、erase、empty、flatten、pick、hexToRgb、rgbToHex。
任何人都可以解释为什么会这样吗?它是否与 Array 对象的属性有关,如果是这样,那么为什么不提醒所有属性?此外,如果我们采用像 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 对象的属性(也是索引)吗?