巢狀JavaScript 函數中的「this」指標行為
這個問題涉及理解「this」指標在使用巢狀函數時的行為在JavaScript 中。在巢狀函數時,重要的是要考慮如何在每個範圍內解析“this”指標。
在提供的範例程式碼中,呼叫時在巢狀函數「doSomeEffects()」中找到「this」指標在「std_obj」物件的「displayMe()」函數內。然而,令人驚訝的是,「this」指標引用了「window」對象,而不是預期的「std_obj」。
發生這種情況是因為 JavaScript 的「this」指標動態綁定到呼叫上下文,而呼叫上下文不是這樣的。由函數的聲明靜態確定。相反,“this”值是在呼叫函數時確定的。
呼叫巢狀函數時,不會明確設定「this」指針,而是由 JavaScript 的預設行為接手。預設情況下,在沒有顯式上下文的情況下呼叫時,「this」指標會引用全域「window」物件。
要解決此問題,我們需要明確設定巢狀函數的上下文。這可以透過使用“call()”或“apply()”方法來實現。透過呼叫“doSomeEffects.call(this)”,我們可以手動將“this”指標綁定到“std_obj”物件。
一旦明確設定「this」指針,巢狀函數就可以存取正確呼叫物件。在這種情況下,“doSomeEffects”中的“this”指針將引用“std_obj”對象,允許巢狀函數按預期工作。
以上是巢狀 JavaScript 函數中的「this」指標如何解析?的詳細內容。更多資訊請關注PHP中文網其他相關文章!