」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 為什麼嵌套 JavaScript 函數中的「this」指標指向全域物件?

為什麼嵌套 JavaScript 函數中的「this」指標指向全域物件?

發佈於2024-11-01
瀏覽:833

Why Does the \

在巢狀函數中的JavaScript「this」指標之謎

在JavaScript 程式碼片段中,您遇到了有關「this」的意外行為" 巢狀函數內的指標。儘管在物件方法中定義了巢狀函數,但巢狀函數內部的「this」指標指向全域「視窗」物件。

「this」指標的行為由函數呼叫方法決定JavaScript。方法中,「this」指標引用到呼叫函數的對象,在本例中為someThing.

  1. Function Call with call(): someFunction.call(someThing, arg1 , arg2, argN)
    • call() 函數明確地將「this」指標設定為所提供的對象,在本例中為someThing.
  2. 使用apply() 進行函數呼叫: someFunction.apply(someThing, [arg1, arg2, argN])
    • 與call()類似,apply()函數將“this”指標設定為所提供的對象,但它需要一個
  3. 在您提供的範例中,呼叫嵌套函數時無需任何顯式函數呼叫方法。 this」指標預設為全域對象,通常是瀏覽器環境中的「window」物件。
    • 要明確指定「this」指標行為,可以使用下列修改:
  4. 使用std_obj.displayMe()而不是std_obj.displayMe;明確呼叫displayMe 方法。 ... }

使用call() 或apply() 函數設定「this」指標: doSomeEffects.call(std_obj);

利用下列任意方法,您可以控制巢狀函數中「this」指標的行為,並確保它引用所需的物件。
    版本聲明 本文轉載於:1729291638如有侵犯,請洽[email protected]刪除
    最新教學 更多>

    免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

    Copyright© 2022 湘ICP备2022001581号-3