HOWTO · JavaScript
JavaScript 新關鍵字
本教程幫助你瞭解 JavaScript 中的新關鍵字。
本頁內容
本文幫助你瞭解 JavaScript 中 new 關鍵字的用法。
JavaScript 中的 new 關鍵字是什麼
JavaScript 的 new 關鍵字用於使用建構函式例項化物件。當使用 new 運算子呼叫建構函式時會發生以下情況。
-
生成一個新的空物件。
-
新物件的內部
Prototype屬性與建構函式原型相同。 -
變數
this旨在指向新建立的物件。它將用this關鍵字宣告的屬性繫結到新物件。 -
當建構函式返回一個非原始值(自定義 JavaScript 物件)時,返回一個新建立的物件。如果建構函式返回原始值,則忽略它。
在函式之後,如果函式體中沒有返回語句,則返回
this。
語法:
new constructorFunction(arguments);
範圍:
ConstructorFunction- 指定物件例項型別的類或函式。引數- 將呼叫建構函式的值列表。
在 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() 包括三個屬性:name、price 和 pages 通知 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。