我有这种情况:
一个 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
}