0

我有这种情况:

一个 JavaScriptfunction A(){}和另一个function B(){}.

我以两种模式调用函数 A:

  • 作为函数 B 的参数——B(A());
  • 以独立形式——A();

当函数 A 被评估为参数以及何时作为独立执行时,有没有办法在代码中感知?

4

2 回答 2

2

当函数 A 被评估为参数以及何时作为独立执行时,有没有办法在代码中感知?

不,因为这不是正在发生的事情。以下两个代码块或多或少相同,除非为var

function Implied() {
    B(A());
}

function Explicit() {
    var retA = A();
    B(retA);
}

在这两种情况下,A都是从父函数调用的,而不是由B.

于 2013-05-19T17:43:30.657 回答
0

我不确定你为什么要这样做,但你确实有几个选择。

一种是简单地传递其他参数。这可能是你应该做的。

另一种选择是使用call()apply()设置 的值this

function B() {
    var context = 'some value';
    A.call(context);  // `this` inside of A will be set to the value of context
}
于 2013-05-19T17:43:28.510 回答