Open innerWang opened 5 years ago
bind() 会以指定的this值和初始参数,返回创建的新函数。
bind()
func.bind(thisArg[, arg1[, arg2[, ...]]])
由于bind() 方法是创建一个函数,所以需要执行才可得到结果。
apply() 会以指定的this值和参数(形式为数组或类数组对象), 调用一个函数。
apply()
func.apply(thisArg, [argsArray])
call() 会以指定的 this 以及参数列表,调用一个函数。与 apply() 方法的不同之处仅在于参数的形式。
call()
fun.call(thisArg, arg1, arg2, ...)
我们可以理解函数的调用形式为 xxx.func(param),如果yyy想要调用func,则需要xxx.func.call(yyy, param) 类似于 : 猫.吃鱼(鱼) , 现在狗想要吃鱼,则为猫.吃鱼.call(狗,鱼)
xxx.func(param)
xxx.func.call(yyy, param)
猫.吃鱼.call(狗,鱼)
Function.prototype.bind()
bind()
会以指定的this值和初始参数,返回创建的新函数。由于bind() 方法是创建一个函数,所以需要执行才可得到结果。
Function.prototype.apply()
apply()
会以指定的this值和参数(形式为数组或类数组对象), 调用一个函数。Function.prototype.call()
call()
会以指定的 this 以及参数列表,调用一个函数。与 apply() 方法的不同之处仅在于参数的形式。我们可以理解函数的调用形式为
xxx.func(param)
,如果yyy想要调用func,则需要xxx.func.call(yyy, param)
类似于 : 猫.吃鱼(鱼) , 现在狗想要吃鱼,则为猫.吃鱼.call(狗,鱼)