呼叫转移从一个功能到另一个功能

时间:2014-12-29 20:28:25

标签: javascript

为什么这段代码有效?毕竟,我们在null的上下文中调用g。粗略地说将函数g称为对象方法null?

function f(a, b) {
  g.apply(null, arguments);
}

1 个答案:

答案 0 :(得分:3)

是的,如果this从未在g的身体内使用apply,可以通过这种方式进行调用。

请注意,当前者是一个可变参数函数时,从外部函数(一个外观)传递参数时,往往没有call的替代方法 - null和直接调用需要列表争论。

如果提供了undefined或{{1}},并且在非严格模式下像这样调用该函数,它将被替换为全局对象(MDN)。