在 JavaScript 中,this 是一個特殊關鍵字,指向目前正在執行程式碼的上下文物件:函數上下文:this 指向全域物件 window。方法上下文:this 指向呼叫該方法的物件。建構函數上下文:this 指向正在建立的新物件。事件監聽器上下文:this 指向觸發事件的元素。箭頭函數上下文:this 繼承父作用域中的 this。
this
在JavaScript 中的作用
在JavaScript 中,this
是一個特殊關鍵字,指向目前正在執行程式碼的上下文物件。它的值會根據上下文而有所不同,因為它可以引用函數、方法或物件。
函數上下文
在函數上下文中,this
總是指向全域對象,即 window
物件。因此,在函數中存取 this
時,可以存取全域變數和函數。
<code class="js">function sayHello() { console.log(this); // 输出: Window {...} }</code>
方法上下文
在方法上下文中,this
總是指向呼叫該方法的物件。這允許方法存取物件的屬性和方法。
<code class="js">const person = { name: "John", sayName: function () { console.log(this.name); // 输出: John }, };</code>
建構子上下文
建構子是用來建立和初始化物件的函數。在建構函數上下文中,this
指向正在建立的新物件。
<code class="js">function Person(name) { this.name = name; } const person1 = new Person("John"); console.log(person1.name); // 输出: John</code>
其他上下文
除了這些主要上下文外,this
還可以用作:
this
指向觸發事件的元素。 this
繼承其父作用域中的 this
。 注意事項
this
不指向全域物件。如果要存取全域對象,需要使用 window
物件。 bind()
、call()
和apply()
方法,用於明確設定或變更this
的值。 以上是js中this的作用的詳細內容。更多資訊請關注PHP中文網其他相關文章!