this是在函数被调用时发生的绑定,它的指向取决于函数在哪里被调用.


绑定规则:

  • 默认绑定 (独立函数调用,指向全局对象)
    1. // foo是直接使用不带任何修饰的函数引用调用的,所以使用默认规则
    2. function foo(){
    3. console.log(this) //window
    4. };
    5. foo();
    注意 : 在严格模式下运行,会绑定到undefined,如果在严格模式下调用函数则不会影响 ```javascript /**
    • 示例
    • fn1运行在严格模式下
    • fn2调用在严格模式下 */ function fn1() { ‘use strict’; console.log(this);//undefined } fn1();

function fn2() { console.log(this);//window } (function () { ‘use strict’; fn2(); })(); ```

  • 隐式绑定
  • 显示绑定
  • new绑定

todo…