Javascript的面向?qū)ο缶幊淌抢脴?gòu)造函數(shù)創(chuàng)建對象的方式實(shí)現(xiàn)的。構(gòu)造函數(shù)是用來創(chuàng)建特定類型的對象的函數(shù),它允許你創(chuàng)建一個(gè)有效的對象,并為其添加屬性和方法。
使用 "new" 關(guān)鍵字是創(chuàng)建對象時(shí)的重要步驟。下面通過一個(gè)例子來說明:
function Person(name, age) { this.name = name; this.age = age; } const person1 = new Person('Tom', 25); console.log(person1.name); // Output: 'Tom'
使用 "new" 關(guān)鍵字創(chuàng)建對象的過程:
- 創(chuàng)建一個(gè)空對象。
- 將對象的原型指向構(gòu)造函數(shù)的原型。
- 在新對象上執(zhí)行構(gòu)造函數(shù)。
- 如果構(gòu)造函數(shù)沒有返回對象,則返回創(chuàng)建的新對象。
const newObj = {};
newObj.__proto__ = Person.prototype;
const result = Person.call(newObj, name, age);
if (typeof result === 'object' && result !== null) { return result; } else { return newObj; }
除了使用 "new" 關(guān)鍵字以外,還有其他方法創(chuàng)建對象,比如字面量方式。
const person2 = { name: 'Lisa', age: 22 } console.log(person2.name); // Output: 'Lisa'
但是字面量方式創(chuàng)建的對象是沒有構(gòu)造函數(shù)的,也不能使用 “new” 關(guān)鍵字。
本文主要介紹了 Javascript 中使用 "new" 關(guān)鍵字以及構(gòu)造函數(shù)的對象創(chuàng)建方式,通過幾個(gè)例子說明了 "new" 關(guān)鍵字使用時(shí)的關(guān)鍵步驟,并且比較了字面量方式和使用構(gòu)造函數(shù)的方式的不同之處。希望對初學(xué)者有所幫助。