首頁 > web前端 > js教程 > 「this」關鍵字在 JavaScript 物件文字中的行為如何?

「this」關鍵字在 JavaScript 物件文字中的行為如何?

Susan Sarandon
發布: 2024-12-18 12:31:18
原創
457 人瀏覽過

How Does the

理解JavaScript 物件文字中的「this」關鍵字

在JavaScript 的物件文字中,「this」關鍵字的行為可能非常不同來自其他程式語言。以下是其工作原理的全面說明。

呼叫時綁定

與其他後期綁定語言不同,JavaScript 在呼叫時而不是在編譯期間綁定「this」時間或運行時間。這意味著“this”的值取決於函數的呼叫方式。

綁定規則

JavaScript 物件文字中「this」的綁定規則如下:

  1. 建構子呼叫:當使用「new」關鍵字,「this」關鍵字綁定到新建立的物件。
  2. 物件方法: 當作為物件方法呼叫時,「this」綁定到該方法所屬的對象,這是最後一個點之前的物件。
  3. 全域範圍:在任何函數之外或如果在沒有任何物件上下文的情況下呼叫函數,「this」綁定到全域對象,biasanya disebut「window」dalam Web 瀏覽器。
  4. 事件處理程序: 在事件處理程序中,「this」通常會綁定到觸發事件的DOM 元素.
  5. Call() 和Apply( ) 方法: 「call()」和「apply()」方法可用於明確地將「this」指派給任何對象,從而允許一個物件存取另一個物件的方法。
  6. Function.bind():“函數” .bind()」方法也可以用於明確地將「this」綁定到特定對象,從而創建一個具有所需功能的新函數實例綁定。

範例使用案例

說明不同的綁定規則:

const obj = {
  foo: "Foo",
  bar() {
    console.log(this.foo); // "Foo" - "this" refers to the object
  },
};

obj.bar(); // Calls the method, binding "this" to the object
登入後複製
function MyDate(date) {
  this.date = date;
}

const obj1 = {
  foo: new Date(),
  bar: new MyDate(this.foo), // Error: this.foo is undefined
};

const obj2 = {
  foo: new Date(),
  bar: new MyDate(obj2.foo), // Works: "this" refers to obj2
};
登入後複製

在第一個範例中, “this”引用物件“obj”,因為該方法被作為物件方法呼叫。 。

以上是「this」關鍵字在 JavaScript 物件文字中的行為如何?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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