巢狀函數難題中的Javascript「this」指標
在Web 開發場景中,巢狀函數中「this」指標的「this」指標的行為可能會令人費解。考慮以下程式碼:
在上面的程式碼中,巢狀函數「doSomeEffects()」內的「this」指標意外地指向「window」物件。此行為與巢狀函數繼承外部函數作用域的預期相矛盾,其中「this」指的是「std_obj」。
了解 Javascript 函數呼叫與作用域
Javascript 函數中「this」的行為取決於函數的呼叫方式。一般有三種方式:
在範例程式碼中,巢狀函數「doSomeEffects()」在沒有父物件的情況下被調用,因此它繼承了全域作用域,並且它的「this」指標指向「window」物件。這就是您觀察到意外行為的原因。
為了確保巢狀函數可以存取「std_obj」範圍,您可以使用Function.call() 方法呼叫它,並將「std_obj」物件作為第一個參數:
理解Javascript 中「this」指標行為的細微差別對於建立健全且可維護的應用程式至關重要。以上是巢狀函數中的Javascript'this”指標:如何解決混亂?的詳細內容。更多資訊請關注PHP中文網其他相關文章!