HOWTO · JavaScript

JavaScript 新關鍵字

本教程幫助你瞭解 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