掌握JavaScript通常意味著了解其細微差別,而關鍵字是一個很好的示例。 雖然JavaScript相對容易學習,但即使是經驗豐富的程序員也可以絆倒的行為。本文闡明了JavaScript中this
的複雜性。
this
this
密鑰概念:
上下文綁定:JavaScript中未靜態定義的JavaScript中的
this
>的行為在不同的上下文中有所不同:全局範圍,簡單函數調用,對象方法和構造函數函數。
this
>
call()
apply()
bind()
理解this
:this
,我們需要考慮:創建:this
當JavaScript函數執行時,創建了新的執行上下文。此上下文包括有關函數調用的信息,包括的值,該值綁定到稱為函數的對象(如果適用)。
this
this
參考:
this
>示例:
在這裡, this
是指
>調用上下文:
<code class="language-javascript">var car = { brand: "Nissan", getBrand: function(){ console.log(this.brand); } }; car.getBrand(); // Output: Nissan</code>在各種情況下的行為:
>
this.brand
getBrand()
car.brand
getBrand()
全局範圍:car
在全局範圍(外部函數之外),
)。
>簡單函數調用:沒有對像上下文的直接函數調用。 在非圖片模式下,this
默認為全局對象。在嚴格的模式下("use strict";
),this
是undefined
。
>對象方法:>當函數稱為對象的方法時,>被綁定到該對象。 this
構造函數函數:用調用函數時,它將成為構造函數。 new
綁定到新創建的對象實例。
this
:this
call()
:apply()
> bind()
調用具有指定this
值的函數,而參數則單獨傳遞。
call()
:類似於this
>,但接受參數為數組。
apply()
:創建一個新功能,具有永久綁定的call()
value。
摘要:bind()
JavaScript中的> this
關鍵字功能強大,但可能會令人困惑。了解其上下文的性質並利用
常見問題(常見問題解答):>
>原始文本的常見問題解答部分已經是共同相關的問題和答案的全面摘要,因此最好將其保持原樣。
以上是揭示JavaScript的內部工作的詳細內容。更多資訊請關注PHP中文網其他相關文章!