JS-函数,重载.
但这种方式书写不方便,但让我们理解了Function类的存在.记得上面说JS无重载的时候举的例子:function doit(iNum){?? ?alert(iNum + 100);}function doit(iNum){?? ?alert(iNum + 10);}它实际上的内容是:doit = new Function("iNum","alert(iNum + 100)");doit = new Function("iNum","alert(iNum + 10)");这样看起来就很容易理解为什么后面的会把前面的覆盖了.因为Function也是一个对象,而声明的时候实际上是将该对象的指针给了函数名.所以可以将多个指针指向同一个Function.如:var?doit = new Function("iNum","alert(iNum + 10)");var alsoDo = doit;doit(11);alsoDo(11);两者效果一样;既然知道了函数名实际上是一个对象的指针,那么我们就可以将函数名传递给其他函数,并做调用;如:function callAnotherFunc(fnFunc,vArgs){?? ?fnFunc(vArgs);}doit = new Function("iNum","alert(iNum + 10)");callAnotherFunc(doit,10);Function类还提供了另外一个接口:length属性,用来返回该类声明的接收参数的长度;如:function doit(iNum){alert(iNum + 10)}function hello(){alert("hello");}alert(doit.length); ? ? //alert 1alert(hello.length); ? ?//alert 0