1. Arguments对象
在函数作用域中,arguments是一个自动声明的标识符,是对Arguments对象的引用。arguments只在函数内部有意义,是一个局部变量。
如果函数的参数使用了arguments这个标识符,那么arguments就变成了一个普通的变量,失去了对Arguments对象的引用。
length属性
用arguments.length可以获取传递给函数的参数的个数。
callee属性
arguments.callee属性可以获取当前执行的函数。这在匿名函数中递归时非常有用。
2. 函数的call() 和 apply() 方法
这两个方法作用是一样的,都是代替一个对象调用一个方法,并将该方法内的this值改为对这个对象的引用。
这两个方法第一个参数都为对象。在call中从第二个参数开始即为传递给函数的参数。而在apply中,则是将传递给函数的参数组合成一个数组作为apply这个方法的第二个参数。
3.函数的length属性
函数的length属性指的是函数定义时定义的参数的个数,而不是函数调用时传递给函数的参数的个数。