JS中this的绑定

JS中this的绑定

https://www.cnblogs.com/echolun/p/11962610.html

  • 默认绑定
     非严格模式下指向全局对象即window对象;严格模式下指向undefined
  • 隐式绑定
     this指向调用该函数的对象;如果调用前存在多个对象,this指向距离调用自己最近的对象
     作用域和原型链的区别:访问变量时,如果上级作用域中也找不到会报错;访问对象属性时,会顺着原型链寻找,原型链的顶端是null,所以没找到会返回undefined,而不是报错
     隐式丢失:作为参数传递和变量赋值时可能发生的问题;丢失后默认指向全局对象
  • 显式绑定
     通过call(); apply(); bind()();方法改变this指向
     call()与apply()的区别是传参方式不同;前者是散列的形式,后者是变量数组;两者都会在改变this的指向的同时执行函数。而bind返回一个绑定函数,需要再执行
  • new绑定
  • 箭头函数绑定
      箭头函数的this指向取决于外层作用域中的this,外层作用域或函数的this指向谁,箭头函数中的this便指向谁。
      一旦箭头函数的this绑定成功,也无法被再次修改

this绑定优先级:显式绑定/new绑定 > 隐式绑定 > 默认绑定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值