每个函数都有一个 length属性 (函数名.length), 表示期望接收的函数的个数(而不是实际接收的参数个数) 它与arguments不同. arguments.length 是表示函数实际接收的参数个数. 试想一下 利用这个功能 可以不可以实现根据函数参数个数的重载呢.如何解决正常情况下如果定义重名函数则会把前面的覆盖的问题? function addMethod(object, name, fn){ // Save a reference to the old method var o…
funcName.caller : 返回一个对函数的引用, 该函数调用了当前函数 function test() { if (test.caller) { var a = test.caller.toString(): alert(a): } else { alert("this is a top function"): } } function test2() { test(); } test(); // this is a top function test2(); // 显示函数…