在javascript语言中,arguments只在function体内才有意义, arguments.length 返回的是传入function的实参个数
来看一个javascript function中arguments参数的例子。
如下:
观察下arguments.length和arguments.callee:
首先,arguments只在function体内才有意义, arguments.length 返回的是传入function的实参个数,比如这里没有传入什么,而是直接运行了一个匿名函数,那么第一个alert肯定是'0'。
再来看arguments.callee返回的是调用的函数本身,对于匿名函数,则可以通过arguments.callee得到自身的引用,这里arguments.callee.length返回的是function本预期要传入的参数个数。
这样的话第二个alert就是'2',如果这是个有名字的函数比如函数名为mytest,那么就可以直接mytest.length来得到应该传入的参数个数。