1. name返回函数的名字
1.1 function f1() {}; f1.name //f1
1.2 如果是通过变量赋值定义的函数,那么name返回变量名字。 var f2 = function(){};
f2.name//f2
1.3 如果是具名函数那么返回的是function关键字之后的那个函数名。var f3 = function f4(){};f3.name //f4。此时真正的函数名仍然是f3,而f4只能在函数名内部可用。
2. length 返回函数定义的参数的个数
这个属性可以用于实现js的方法重载,利用剩余参数属性和length判断定义时和调用时的参数的差异即可实现。