map
这是Firefox中该函数的一些奇怪的 javascript 行为。
在 web 应用程序的错误情况下(当 firebug 暂停错误时)在 Firebug 控制台中键入以下内容:
["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 控制台中键入相同的语句,它会产生以下预期结果:
["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)
callback 使用三个参数调用:元素的值、元素的索引和被遍历的 Array 对象。
是因为应用程序强制 Firefox 进入某种模式而导致的意外行为吗?
(我使用的是 Firefox 12.0)