摘要:JavaScript 中的 this
全局中的 this
this 是在执行上下文创建时绑定的,全局中的 this 指向 window 对象本身
函数中的 this
函数中的 this 指向什么完全取决于函数在哪里被调用:
1.由 new 调用,绑定到新创建的对象
1 | var bar = new foo(); // 构造函数 foo 中 this 指向 bar |
2.有 call、apply、bind 调用,绑定到指定的对象
1 | foo.call(obj); // foo 中 this 指向 obj |
3.由上下文对象调用(被一个对象拥有或者包含),绑定到那个上下文对象
1 | obj.foo(); // foo 中 this 指向 obj |
4.独立调用:在严格模式下绑定到 undefined,否则绑定到全局对象
1 | function bar(){} |
属性中的 this
如果对象在全局环境中声明,对象属性中的 this 指向全局对象;如果是在函数中声明的对象,this 在非严格模式下指向全局,严格模式下指向 undefined
1 | var a = 2; |
《你不知道的JavaScript(上卷)》第二部分 第二章 this 全面解析
前端基础进阶(五):全方位解读this