我想大多数人都看过下面的代码片段:
Function.prototype.method = function (name, func) {
this.prototype[name] = func;
return this;
};
我也知道它会影响所有函数,因为它们都是由 Function 创建的对象,以便它们可以访问名为“method”的方法,但是我很困惑为什么 Function 本身也可以访问“method”,如下所示:
Function.method('test', function () {return 1;});
Edorka 的答案是正确的:函数是它自己的构造函数(即“父函数”)。
Function.constructor; // function Function() { [native code] }
通常你can't做你正在做的事。例如,这是行不通的:
f = function () {};
f.prototype.a = 5;
f.a; // undefined
这种事情只有在使用函数作为构造函数时才有效,如下所示:
f = function () {};
f.prototype.a = 5;
g = new f();
g.a; // 5
但 Function 很奇怪,它是所有函数的构造函数,而且本身也是一个函数,所以它模板化了它的属性its own原型。因此你可以打电话Function.method()
在你的代码中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)