所谓的函数显式调用,是指通过 Function.prototype.call() 或者 Function.prototype.apply() 方法来调用函数,并明确指定函数的上下文(即 this 的值)。

call()apply() 这两个方法几乎一样,区别只是在传参有区别(func.call(this, "eat", "bananas") vs func.apply(this, ["eat", "bananas"])

callapply 类似的还有 bind 方法,不过 bind 是返回一个新函数,而 callapply 是立即调用函数。

参考资料