js中function本身的length属性和arguments.length区别?

[转]JavaScript中,函数本身的length属性和arguments.length到底有什么区别?

其实就是理想与现实的距离。

正经答案

函数对象的length属性是形式参数的个数;
arguments伪变量的length属性是某次调用的实际参数的个数。

1
2
3
4
5
6
7
function func(a,b,c){
console.log(arguments.length);
}

console.log(func.length)//输出:3

func(1);//输出: 1