Chrome中也有不少 Bug ,但更新修复速度极快。下面又发现一个有趣的现象函数实参与形参发生了关联。
function func(x,y){ //alert(x); arguments[1] = 5; alert(y); // --> 5 } func(3);
IE6/7/8/9,Firefox,Safari, Opera中 y 弹出为undefined,Chrome 则为5。
函数func定义了形参x,y;调用时实参为3。func内部修改了实参arguments[1],非Chrome浏览器中形参y不会与arguments[1]关联,即为undefined。Chrome则相反,修改arguments[1]同时即修改了形参y。
修改形参y,实参arguments[1]在Chrome中同样被修改,即相互关联。
function func(x,y){ //alert(x); y = 6; alert(arguments[1]); // --> 6 } func(3);
2012-10-23:Chrome22测试,已不存在这个问题。重新总结如下:
1,调用时实参与定义时形参数量一致时,实参与arguments互相影响,修改其中的一个其对应的也会被修改。
2,实参与形参数量不一致时,不关联,不互相影响。