我有這種情況:JavaScript函數調用上下文
一個JavaScript function A(){}
和另一function B(){}
。
我調用函數的模式有兩種:
- 作爲函數B的參數 - 以獨立形式
B(A());
- -
A();
是否有代碼來檢測的方式當函數A被評估爲參數,何時以獨立方式執行?
我有這種情況:JavaScript函數調用上下文
一個JavaScript function A(){}
和另一function B(){}
。
我調用函數的模式有兩種:
B(A());
A();
是否有代碼來檢測的方式當函數A被評估爲參數,何時以獨立方式執行?
我不知道你爲什麼會想這樣做,但你有幾個選項。
一個是簡單地傳遞其他參數。這是你應該做的。
另一種選擇是使用call()
或apply()
來設置值this
。
function B() {
var context = 'some value';
A.call(context); // `this` inside of A will be set to the value of context
}
是否有代碼來檢測功能時,一個被評估爲參數,當作爲一個獨立的執行方式?
沒有,因爲這不是發生了什麼。下面的兩個碼塊都或多或少是相同的,除非額外的存儲器中的點點爲var
function Implied() {
B(A());
}
和
function Explicit() {
var retA = A();
B(retA);
}
在兩種情況下,A
正在從父函數調用,並且而不是B
。
不,沒有辦法做到這一點。你爲什麼想這麼做?這會爲你解決什麼問題?如果你描述這個問題,你更有可能得到一個有用的答案。 – Pointy