美文网首页
请简述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