Javascript 什么是';这';当它在原型中时引用?

Javascript 什么是';这';当它在原型中时引用?,javascript,Javascript,从克罗克福德的好地方偷来的。当代码返回“this”时,“this”在本例中引用了什么 当我在js代码中看到“this”时,我总是这样问自己,因为我知道js用this这个词很时髦(也就是说,“this”在嵌套函数中实际引用了全局变量)在这个上下文中,这个是对函数实例的引用。在这个上下文中,此是对函数实例的引用。当您扩展函数时。原型,此将引用函数实例 例如: Function.prototype.method = function (name, func) { this.prototype[

从克罗克福德的好地方偷来的。当代码返回“this”时,“this”在本例中引用了什么


当我在js代码中看到“this”时,我总是这样问自己,因为我知道js用this这个词很时髦(也就是说,“this”在嵌套函数中实际引用了全局变量)

在这个上下文中,
这个
是对
函数
实例的引用。

在这个上下文中,
是对
函数
实例的引用。

当您扩展
函数时。原型
将引用函数实例

例如:

Function.prototype.method = function (name, func) {
    this.prototype[name] = func;
    return this;
};
调用函数有四种不同的方式,它们决定了此所指的内容。MDN对此有自己的看法

简言之:

  • 简单函数调用:全局对象(
    window
    在浏览器中)
  • 对象方法:对象(即
    obj.method()
    this
    引用了
    obj
    )(在您的示例中就是这种情况)
  • 使用
    new
    关键字:从函数原型继承的空对象
  • 调用
    /
    应用
    :作为第一个参数传递的内容

    • 当您扩展
      函数时。原型
      将引用函数实例

      例如:

      Function.prototype.method = function (name, func) {
          this.prototype[name] = func;
          return this;
      };
      
      调用函数有四种不同的方式,它们决定了此
      所指的内容。MDN对此有自己的看法

      简言之:

      • 简单函数调用:全局对象(
        window
        在浏览器中)
      • 对象方法:对象(即
        obj.method()
        this
        引用了
        obj
        )(在您的示例中就是这种情况)
      • 使用
        new
        关键字:从函数原型继承的空对象
      • 调用
        /
        应用
        :作为第一个参数传递的内容

      引用调用其
      方法
      方法的构造函数。例如,你可以这样做:

      function foo() {};
      
      foo.method(); // `this` refers to foo
      

      引用调用其
      方法
      方法的构造函数。例如,你可以这样做:

      function foo() {};
      
      foo.method(); // `this` refers to foo