代码片段一:
function b(x, y, a) {
arguments[2] = {"name" : "func"};
alert(a.name); //"func"
}
b(1, 2, {"name" : "win"});
代码片段二:
function b(x, y, a) {
var arr = [x,y,a];
arr[2] = {"name" : "func"};
alert(a.name); //"win"
}
b(1, 2, {"name" : "win"});
逛网站的时候偶然发现了代码片段一,旁边有个学java的表示对代码片段一的结果很不理解,举出了代码片段二。应该从什么角度解释这两段代码结果的区别呢?求解。
在第二段中
只改变了
arr
数组、,并没有修改到实际的a
,你可以试着在第二段代码中console.log(arguments)
来查看结果