您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
关于javascript的call、apply、bind、bind()与前两种的区别是什么?
函数,方法,都是关于javascript的call、apply、bind、bind()与前两种的区别是什么?
发布时间:2019-02-08加入收藏来源:互联网点击:
问题补充: 为什么是临时的呢?而bind()为什么是永久绑定呢?
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
1、call,apply和bind的区别它们在功能上是没有区别的,都是改变this的指向,它们的区别主要是在于方法的实现形式和参数传递上的不同。call和apply方法都是在调用之后立即执行的。而bind调用之后是返回原函数,需要再调用一次才行
2、①:函数.call(对象,arg1,arg2....)
②:函数.apply(对象,[arg1,arg2,...])
③:var ss=函数.bind(对象,arg1,arg2,....)
3、总结一下call,apply,bind方法:
a:第一个参数都是指定函数内部中this的指向(函数执行时所在的作用域),然后根据指定的作用域,调用该函数。
b:都可以在函数调用时传递参数。call,bind方法需要直接传入,而apply方法需要以数组的形式传入。
c:call,apply方法是在调用之后立即执行函数,而bind方法没有立即执行,需要将函数再执行一遍。有点闭包的味道。
d:改变this对象的指向问题不仅有call,apply,bind方法,也可以使用that变量来固定this的指向。
上一篇:快过年了,做个什么发型好?
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |