所谓的函数显式调用,是指通过 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
是立即调用函数。