Function.prototype.apply()
MDN:apply() 方法调用一个具有给定this值的函数,以及以一个数组(或类数组对象)的形式提供的参数。
- 调用有指定this值和参数的函数,返回的是结果,这点与call相同。
- 与call()相比接收的参数是参数数组。
func.apply(thisArg, [argsArray])
Function.prototype.call()
MDN:call() 方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数。
- 调用有指定this值和参数的函数,返回的是结果,这点与apply相同。
- 与apply()相比接收的参数是参数列表。
function.call(thisArg, arg1, arg2, ...)
Function.prototype.bind()
MDN:bind() 方法创建一个新的函数,在 bind() 被调用时,这个新函数的 this 被指定为 bind() 的第一个参数,而其余参数将作为新函数的参数,供调用时使用。
- 返回一个原函数的拷贝,并拥有指定的 this 值和初始参数。这点与apply()、call()不同。
function.bind(thisArg[, arg1[, arg2[, ...]]])