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,之后的一序列参数将会在传递的实参前传入作为它的参数
网友评论