JavaScript 对call()、apply()、bind()的彻底理解(很好懂)
我们想看两个例子:
1 | var name = "阿清", |
1 | var a = "小明"; |
由这两个例子可以看出来,第一个this指向obj,第二个例子this指向window。
我们要知道 call()、apply()、bind() 都是对this的重定向。改变调用函数体内的 this 指向。
如下:
1 | var name = "阿清", |
this 都指向的 a ,除了bind方法后面多了一个(),其他都一样,因为bind返回是一个新的函数,我们必须调用它,才会执行。
call()、apply()、bind() 也可以进行传参:
1 | var name = "阿清", |
我们可以看出
- call 、bind 、 apply 这三个函数的第一个参数都是 this 的指向对象,第二个参数就有区别了。
- call的参数是直接放进去的,第二第三第n个参数全都用逗号分隔,直接放到后面。
- apply的参数必须放到一个数组里面才能传进去。
- bind 除了返回是一个函数之外,其他都是call 相同。
- 参数可以为String类型,函数类型,Object类型等等各种类型。
愿你的坚持终有收获。
Invitation
aqing
962555446
created:15/04/2021
Welcome to Candyhome
Use this card to join the candyhome and participate in a pleasant discussion together .
Welcome to aqing's candyhome,wish you a nice day .
评论