我在Firefox-3.5.7 / Firebug-1.5.3和Firefox-3.6.16 / Firebug-1.6.2中观察到了这一点。
当我启动Firebug时:
var x = new Array(3)
console.log(x)
// [undefined, undefined, undefined]
var y = [undefined, undefined, undefined]
console.log(y)
// [undefined, undefined, undefined]
console.log(x.constructor == y.constructor) // true
console.log(
x.map(function() { return 0; })
)
// [undefined, undefined, undefined]
console.log(
y.map(function() { return 0; })
)
// [0, 0, 0]
这里发生了什么?这是一个错误吗,还是我不理解如何使用new Array(3)
?
var y = x.map(function(){return 0; });
这样的东西时,我才会得到0的结果,并且我在使用 new Array() 方法和数组字面量时都会得到这个结果。 我在Firefox 4和Chrome中进行了测试。 - RussellUresti