JS的this

this指向相关问题

相关文档

MDN This

彻底理解 js 中 this 的指向,不必硬背。

简单整理

只是简单整理,不严谨,学习还是看MDN官方文档

  • 绝大多数情况下,函数的调用方式决定了this的值。
  • 绝大多数情况下,this的指向在函数定义时不能确定,在函数执行时确定。
  • 绝大多数情况下,this指向调用它的对象。
  • 全局情况下,this指window,nodeJS下指向global
  • 全局情况下,严格模式时this指向undefined
  • 调用时,可以通过call()/apply()方法间接调用以改变上下文。
  • 可以使用bind()永久绑定其指向到第一个参数,无论这个函数时如何调用的。且bind只生效一次。
  • 一个含有this的函数被多级调用,this也只指向直接调用它的上一级对象,而不是最外层。
  • 特殊情况,通过ES6箭头函数捕获其所在上下文的this值,作为自己的this值。
  • 箭头函数下this会忽略严格模式下的相关规则。
  • 箭头函数中的this指向不会因为call()/apply()/bind()方法改变。