首頁 > web前端 > js教程 > 主體

js中this的作用

下次还敢
發布: 2024-05-06 13:45:24
原創
698 人瀏覽過

在 JavaScript 中,this 是一個特殊關鍵字,指向目前正在執行程式碼的上下文物件:函數上下文:this 指向全域物件 window。方法上下文:this 指向呼叫該方法的物件。建構函數上下文:this 指向正在建立的新物件。事件監聽器上下文:this 指向觸發事件的元素。箭頭函數上下文:this 繼承父作用域中的 this。

js中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 物件。
  • 在ES6 引入了bind()call()apply() 方法,用於明確設定或變更this 的值。

以上是js中this的作用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板