详情参考:https://github.com/mqyqingfeng/Blog/issues/14
如果: arguments和实参的关系,以及arguments的属性
附上代码和注解
function foo(name, age, sex) {/**/
//当前初始foo('ds1','ds2'),只传入了两个实参 name,age
console.log('参数' + arguments)
console.log('实参的长度' + arguments.length) /*输出的实参的长度*/
console.log('形参的长度' + arguments.length) /*输出的形参的长度*/
//改变传入的实参 name
name = 'change_ds1'
console.log('改变实参name之后' + name + arguments[0]) //输出都是change_ds1 ,因为name是传入的,所以被 实参和argumens共享
//改变 argumen中的age
arguments[1] = 'change_ds2'
console.log('改变arguments age' + age + arguments[1]) //输出都是change_ds1 ,因为name是传入的,所以被 实参和argumens共享
//测试为传入的参数sex
sex = 'sds' //只有sex有值,arguments[2]无,不是传入的不被共享
arguments[2] = 'ads' //只有arguments[2]有值,sex无 ,不是传入的不被共享
}
foo('ds1', 'ds2') /输出的形参的长度/