记录JavaScript函数内部关于this指向问题总结

  1. 沿着作用域向上找最近的一个 function (不是箭头函数),看这个 function 最后怎么执行的;

  2. this 的指向取决于所属 function 的调用方式,而不是定义

  3. function 调用一般分为以下几种情况:

    1. 作为函数调用,即:foo()

       指向全局对象(globalThis),注意严格模式问题,严格模式下是 undefined
      
    2. 作为方法调用,即:foo.bar() / foo.bar.baz() / foo['bar'] / foo[0]()

       指向最终调用这个方法的对象
      
    3. 作为构造函数调用,即:new Foo()

       指向一个新对象 Foo {}
      
    4. 特殊调用,即:foo.call() / foo.apply() / foo.bind()

       参数指定成员
      
  4. 找不到所属的 function ,就是全局对象

猜你喜欢

转载自blog.csdn.net/qq_38652871/article/details/109591450