试图理解javascript Function.prototype

use*_*800 3 javascript prototype-programming

我试图理解这段代码

Function.prototype.method = function (name, fn) {
    this.prototype[name] = fn;
    return this;
};
Run Code Online (Sandbox Code Playgroud)

函数体中"this"指的是什么?它指的是什么Function.prototype?是否试图添加成员 Function.prototype.prototype,即Function.prototype.prototype[name]

SLa*_*aks 9

函数in Function.prototypeFunction实例上调用.
因此,this指的是您调用它的功能.

this.prototype 会引用你调用它的函数的原型.

例如:

function MyClass() { }
MyClass.method("myMethod", function() { });

var c = new MyClass();
c.myMethod();    //MyClass.prototype.myMethod
Run Code Online (Sandbox Code Playgroud)

  • +1另外,为了给这个答案添加一点,`return this;`最后只是使函数可用于链接,即类似于`MyClass.method("a",function(){}).方法( "b",function(){});`等等. (2认同)