JavaScript 新關鍵字

Shiv Yadav 2023年10月12日
  1. JavaScript 中的 new 關鍵字是什麼
  2. 在 JavaScript 中使用 new 關鍵字
JavaScript 新關鍵字

本文幫助你瞭解 JavaScript 中 new 關鍵字的用法。

JavaScript 中的 new 關鍵字是什麼

JavaScript 的 new 關鍵字用於使用建構函式例項化物件。當使用 new 運算子呼叫建構函式時會發生以下情況。

  1. 生成一個新的空物件。

  2. 新物件的內部 Prototype 屬性與建構函式原型相同。

  3. 變數 this 旨在指向新建立的物件。它將用 this 關鍵字宣告的屬性繫結到新物件。

  4. 當建構函式返回一個非原始值(自定義 JavaScript 物件)時,返回一個新建立的物件。如果建構函式返回原始值,則忽略它。

    在函式之後,如果函式體中沒有返回語句,則返回 this

語法:

new constructorFunction(arguments);

範圍:

  1. ConstructorFunction - 指定物件例項型別的類或函式。
  2. 引數 - 將呼叫建構函式的值列表。

在 JavaScript 中使用 new 關鍵字

示例 1:

function Book(name, price, pages) {
  this.name = name;
  this.price = price;
  this.pages = pages;
}

const book1 = new Book('Science', 20, 480);

document.write(book1.name);

嘗試演示

輸出:

Science

new 關鍵字在上面的示例中建立了一個空物件。Book() 包括三個屬性:namepricepages 通知 this 術語。

結果,一個新的空物件將具有所有這些屬性,即名稱價格頁面。新建立的東西以 book1() 的形式返回。

示例 2:

function func() {
  var as = 1;
  this.s = 500;
}

func.prototype.k = 1000;

var obj = new func();
document.write(obj.s);
document.write('\n');
document.write(obj.k);

嘗試演示

輸出:

500 1000

上例中的 new 關鍵字建立了一個空物件,然後將 prototype 屬性設定為 func() 的原型屬性。使用 func.prototype.k 分配新屬性 k

因此,新實體還將包含 k 屬性;然後,它將使用 this 關鍵字宣告的所有屬性和函式繫結到一個新的空物件。

這裡,func() 只包含一個屬性 s,用 this 關鍵字表示。因此,一個新的開放實體現在將具有 s 屬性。

func() 包括 as 變數,未使用 this 關鍵字宣告。因此 as 不會包含在新物件中。

最後,返回新建立的物件。請注意,func() 沒有 return 語句。

編譯器將在末尾隱式插入 return this

作者: Shiv Yadav
Shiv Yadav avatar Shiv Yadav avatar

Shiv is a self-driven and passionate Machine learning Learner who is innovative in application design, development, testing, and deployment and provides program requirements into sustainable advanced technical solutions through JavaScript, Python, and other programs for continuous improvement of AI technologies.

LinkedIn

相關文章 - JavaScript Keyword