我注意到在我的 javascript 中,如果我创建一个空数组,将其作为关联数组循环并打印出内容,它会返回看起来像来自 Array Object 类本身的函数。这是我的代码:
var test = new Array();
for(var i in test){
document.write(i + " " + test[i] + "<br>");
}
alert(test.length); // this returns 0
上面的代码打印以下内容(我省略了一些输出,因为它有点长)
$family function (){return u; }
$constructor function Array() { [native code] }
pop function pop() { [native code] }
push function push() { [native code] }
reverse function reverse() { [native code] }
shift function shift() { [native code] }
sort function sort() { [native code] }
splice function splice() { [native code] }
unshift function unshift() { [native code] }
concat function concat() { [native code] }
join function join() { [native code] }
slice function slice() { [native code] }
indexOf function indexOf() { [native code] }
etc...
我注意到,如果我使用 for 循环遍历数组,即:
for(var i = 0; i < test.length; i++)
浏览器不打印任何东西(这是应该发生的)
谁能解释为什么当我以另一种方式循环时从空数组中获取一堆函数?万一这很重要,我正在使用 mootools v1.3。提前致谢。