function foo(x, y, z){
// 传入 x:10 y:20
// 定义函数参数(x, y, z)的个数
console.log(foo.length) //3
// 实际传递的参数个数
console.log(arguments.length) //2
// arguments.callee指向函数的引用(被触发上下文) caller指向函数被调用的环境(触发上下文)
console.log('arguments.caller',arguments.caller) //undefined
console.log(arguments.callee === foo) //true
// 参数互相共享
console.log(x === arguments[0]) //true
console.log(x) //10
arguments[0] = 20
console.log(x) //20
x = 30
console.log(arguments[0]) //30
// 然而,对于没有传递的参数;
// 相关的arguments对象的index-property是不共享的
z = 40
console.log(arguments[2]) //undefined
arguments[2] = 50
console.log(z) //40
}
foo(10,20)