this的四种绑定:默认、new、显式、隐式


概念

this的四种绑定分别是:

默认、new、显式、隐式

这四种绑定分别与函数的四种调用相关联:

默认绑定:函数直接调用。非严格模式下this指向window,严格是undefined

new绑定:函数作为构造函数调用。this指向新建对象

显式绑定:函数使用call.apply调用。this执行定义的对象

隐式绑定:函数作为属性方法调用。this指向调用的属性

绑定优先级

new > 显式 > 隐式 > 默认

例如 new Person.call(window) 后,this以new为准,指向新对象而不是window

多重硬绑定的结果

硬绑定指的是bind。如果一个函数进行了多重硬绑定,那么绑定的结果将以第1次为准。原因是bind返回的是一个闭包函数,多次绑定对第一次的结果并不影响。

软绑定

软绑定旨在解决bind后无法修改this和参数。

this绑定的四种方式

软绑定


文章作者: iamfugui
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 iamfugui !
评论
  目录