this
-
1.执行上下文,关键字,默认没有任何含义。只有在执行的一瞬间才被绑定了指向
-
2.当前函数的执行对象
- this一般在函数中使用
- 只有函数执行了,this才有意义,函数没执行,this没有意义
-
3.如何强制绑定this(函数的方法)
- call,apply,bind
- 功能:改变this指向
- 参数:
- call和apply的第一个参数,都是要改变的this的指向
- call和bind第二个参数向后,覆盖原函数的形参
- apply第二参数,必须是数组,解析之后覆盖原函数的形参
- 返回值:
- call和apply的返回值,就是原函数的返回值
- bind的返回值是,改变了this指向后的新函数
- 是否改变原数据:不会修改原数据
- 参考文档:
- https://www.jianshu.com/p/0a6655dbf420
- https://www.jianshu.com/p/a6f26c3756fe
- call,apply,bind
-
4.this的常见场景
- 默认绑定:没有明确隶属对象的函数中的this,指向window
- 隐示绑定:通过对象执行函数时,指向当前对象
- 隐示绑定this的函数,作为参数使用时,会隐示丢失,指向window
- 强制绑定:使用函数的方法:call,apply,bind,指向方法的第一个参数
- 可以修复隐示丢失
- 在即将丢失之前,使用显示绑定方法,修改this指向
- 可以修复隐示丢失