每个函数都有arguments,arguments代表当前函数实参的集合(数组),arguments与函数的形参存在映射规则。
/*例:*/
function sum(a, b){
/*函数有实参对应着形参,arguments与形参存在映射关系;
即形参的值改变arguments对应的值也改变,arguments对应的值改变形参的值也改变。
各自的值互相独立,有映射关系*/
console.log("a ---- " + a);
console.log("arguments[0] ---- " + arguments[0]);
a = 2;
console.log("a的值改为2");
console.log("a ---- " + a);
console.log("arguments[0] ---- " + arguments[0]);
arguments[0] = 3;
console.log("arguments[0]的值改为3");
console.log("arguments[0] ---- " + arguments[0]);
console.log("a ---- " + a);
/*函数没有实参对应着形参,arguments与形参不存在映射关系;
即形参的值改变arguments对应的值不变,arguments对应的值改变形参的值也不变。
各自的值互相独立,没有映射关系*/
console.log("b ---- " + b);
console.log("arguments[1] ---- " + arguments[1]);
b = 6;
console.log("b的值改为6");
console.log("b ---- " + b);
console.log("arguments[1] ---- " + arguments[1]);
arguments[1] = 5;
console.log("arguments[1]的值改为5");
console.log("arguments[1] ---- " + arguments[1]);
console.log("b ---- " + b);
}
sum(1);