1 apply(thisArg, [argsArray])
方法调用一个具有给定this
值的函数,以及以一个数组(或类数组对象)的形式提供的参数
function add(inputNum) {
return function() {
return this.input + inputNum
}
}
function one(func) {
const obj = {
input: 1
}
if (func) {
return func.apply(obj)
} else {
return obj.input
}
}
function two(func) {
const obj = {
input: 2
}
if (func) {
return func.apply(obj)
} else {
return obj.input
}
}
one(add(two())) // 3
two(add(one())) // 3
2 bind(
thisArg[, arg1[, arg2[, ...]]])
方法创建一个新的函数,在 bind()
被调用时,这个新函数的 this
被指定为 bind()
的第一个参数,而其余参数将作为新函数的参数,供调用时使用。
3 call(
thisArg, arg1, arg2, ...
)
方法使用一个指定的 this
值和单独给出的一个或多个参数来调用一个函数。