为什么这段代码有效?毕竟,我们在null的上下文中调用g。粗略地说将函数g称为对象方法null?
function f(a, b) {
g.apply(null, arguments);
}
答案 0 :(得分:3)
是的,如果this
从未在g
的身体内使用apply
,可以通过这种方式进行调用。
请注意,当前者是一个可变参数函数时,从外部函数(一个外观)传递参数时,往往没有call
的替代方法 - null
和直接调用需要列表争论。
如果提供了undefined
或{{1}},并且在非严格模式下像这样调用该函数,它将被替换为全局对象(MDN)。