JavaScript 之This

参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/this

概念

  • this是指函数运行时所在的环境(this所在的环境不同所以执行结果也有不同)
var obj = {
  foo: function () { console.log(this.bar) },
  bar: 1
};

var foo = obj.foo;
var bar = 2;

obj.foo() // 1
foo() // 2
  • Javascript 之所以有this设计跟内存中的数据结构有关系

  • 无论是否在严格模式下,在全局执行上下文中(在任何函数体外部)this 都指代全局对象

      // 在浏览器中, window 对象同时也是全局对象:
          console.log(this === window); // true
          a = 37;
    
          console.log(window.a); // 37
          this.b = "MDN";
    
          console.log(window.b) // "MDN"
          console.log(b) // "MDN"
    

你可能感兴趣的:(JavaScript 之This)