以下是Firefox中map
函数的一些奇怪的javascript行为。Firefox中`map`的奇怪javascript行为
在一个Web应用内的错误状态(当萤火上的错误暂停)键入以下到萤火虫控制台:
["a", "b", "c", "d"].map(function(val, i, arr) {
return val + " " + i + " " + typeof arr;
});
产生以下的未预期的结果:
["a undefined undefined",
"b undefined undefined",
"c undefined undefined",
"d undefined undefined"]
那时,如果我打开另一个空白标签并在空白标签的Firebug Console中输入相同的语句,则会产生以下预期结果:
["a 0 object",
"b 1 object",
"c 2 object",
"d 3 object"]
这意味着,在错误条件下,map
使用1个参数而不是预期的3个参数来调用回调。从MDN
引用: (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/map)
回调调用与三个参数:元素的值,将 的元素的索引,并且该阵列对象正被遍历。
是由于应用程序强迫Firefox进入某种模式而出现意外的行为?
(我使用的是Firefox 12.0)
http://jsfiddle.net/6WRqp/ --- FF12,无法复制 – zerkms