arguments和命名参数
在 "JavaScript高级程序设计(第3版)"中(第3章66页),说"arguments和命名参数的内存空间是独立的,但它们的值会同步。同步是单向的,修改命名参数不会改变arguments的值。"
但下面的测试却是双向影响的,不知哪里的问题?
function add(num1, num2){
arguments[1] = 10; //修改arguments会修改命名参数
alert(arguments[1]); // 10
alert(num2); // 10
num2 = 30; //修改命名参数,会修改arguments
// arguments[1] = 20;
alert(num2); // 30
alert(arguments[1]); // 30
alert(arguments[0] + num2); //STRING30
alert(arguments[0] + arguments[1]); //STRING30
}
add("STRING", 45);