美文网首页
请简述call、bind、apply的区别

请简述call、bind、apply的区别

作者: 萌宝雨儿 | 来源:发表于2020-09-07 01:24 被阅读0次

call()方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数。

apply() 方法调用一个具有给定this值的函数,以及以一个数组(或类数组对象)的形式提供的参数。

bind() 方法创建一个新的函数,在 bind() 被调用时,这个新函数的 this 被指定为 bind() 的第一个参数,而其余参数将作为新函数的参数,供调用时使用。

共同点:

call()、apply()、bind()是用来改变this的指向的。

参数区别:

第一个参数都是this要指向的对象

call() 第二个参数接受的是一个参数列表call(dom,"transferObject","call")

apply() 第二个参数接受的是一个包含多个参数的数组

apply(dom,["transferObjec","apply"])

bind(dom,"ransferObjec","bind"),bind()第二个参数接收的也是一个参数列表

bind是返回对应的函数,便于稍后调用,而不是直接执行函数;apply,call则是立即调用

区别:

call和apply的功能相同,区别在于传参的方式不一样

bind 和call/apply 有一个很重要的区别,一个函数被 call/apply 的时候,会直接调用,但是bind 会创建一个新函数。当这个新函数被调用时,bind() 的第一个参数将作为它运行时的 this,之后的一序列参数将会在传递的实参前传入作为它的参数

相关文章

网友评论

      本文标题:请简述call、bind、apply的区别

      本文链接:https://www.haomeiwen.com/subject/cyihektx.html