我有这种情况:
一个 JavaScriptfunction A(){}和另一个function B(){}.
我以两种模式调用函数 A:
- 作为函数 B 的参数——
B(A()); - 以独立形式——
A();
当函数 A 被评估为参数以及何时作为独立执行时,有没有办法在代码中感知?
我有这种情况:
一个 JavaScriptfunction A(){}和另一个function B(){}.
我以两种模式调用函数 A:
B(A());A();当函数 A 被评估为参数以及何时作为独立执行时,有没有办法在代码中感知?
当函数 A 被评估为参数以及何时作为独立执行时,有没有办法在代码中感知?
不,因为这不是正在发生的事情。以下两个代码块或多或少相同,除非为var
function Implied() {
B(A());
}
和
function Explicit() {
var retA = A();
B(retA);
}
在这两种情况下,A都是从父函数调用的,而不是由B.
我不确定你为什么要这样做,但你确实有几个选择。
一种是简单地传递其他参数。这可能是你应该做的。
另一种选择是使用call()或apply()设置 的值this。
function B() {
var context = 'some value';
A.call(context); // `this` inside of A will be set to the value of context
}