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
。
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