所谓的函数显式调用,是指通过 Function.prototype.call() 或者 Function.prototype.apply() 方法来调用函数,并明确指定函数的上下文(即 this 的值)。
call() 与 apply() 这两个方法几乎一样,区别只是在传参有区别(func.call(this, "eat", "bananas") vs func.apply(this, ["eat", "bananas"]))
与 call 和 apply 类似的还有 bind 方法,不过 bind 是返回一个新函数,而 call 和 apply 是立即调用函数。