新聞中心
我們往往需要?jiǎng)討B(tài)地給對(duì)象添加或刪除屬性和方法:// 添加新屬性person.gender = '男';2. 構(gòu)造函數(shù)模式構(gòu)造函數(shù)模式其實(shí)就是把相同類型(類)事物抽象出來。
- 本文目錄導(dǎo)讀:
- 1、 對(duì)象字面量
- 2、 構(gòu)造函數(shù)模式
- 3、 原型模式
- 4、 Object.create() 方法

作為一名前端工程師,我們都知道 JavaScript 是基于對(duì)象的編程語言。在 JavaScript 中,萬物皆為對(duì)象。而理解和掌握 JavaScript 對(duì)象是成為一個(gè)優(yōu)秀的前端工程師必備技能之一。
那么,在本篇文章中,我們將深入了解并探討 JavaScript 對(duì)象的幾種創(chuàng)建方式。
1. 對(duì)象字面量
這是最常見、也是最簡(jiǎn)單直接可行的方法。通過使用大括號(hào)({})來定義一個(gè)空對(duì)象,并可以在其中添加屬性和方法。
```javascript
var person = {
name: '張三',
age: 20,
sayHi: function() {
console.log('你好!');
}
};
```
上面代碼就定義了一個(gè)名叫 `person` 的對(duì)象,并且它有兩個(gè)屬性:`name` 和 `age` ,還有一個(gè)方法 `sayHi()` 。
當(dāng)然,在實(shí)際開發(fā)過程中,我們往往需要?jiǎng)討B(tài)地給對(duì)象添加或刪除屬性和方法:
// 添加新屬性
person.gender = '男';
// 刪除某個(gè)已存在的屬性
delete person.age;
2. 構(gòu)造函數(shù)模式
構(gòu)造函數(shù)模式其實(shí)就是把相同類型(類)事物抽象出來,形成藍(lán)圖(即構(gòu)造函數(shù)),然后通過該藍(lán)圖去創(chuàng)建具體實(shí)例對(duì)象。
function Person(name, age) {
this.name = name;
this.age = age;
// 實(shí)例方法
this.sayHi = function() {
}
var person1 = new Person('張三', 20);
上面代碼中,我們定義了一個(gè) `Person` 的構(gòu)造函數(shù),并在該函數(shù)內(nèi)部定義了兩個(gè)屬性:`name` 和 `age` 。同時(shí)還有一個(gè)實(shí)例方法 `sayHi()` ,用于打招呼。
接著,通過使用關(guān)鍵字 `new` 來創(chuàng)建一個(gè)新的對(duì)象,即:
這樣就創(chuàng)建出了一個(gè)名叫 `person1` 的對(duì)象,并且它具有相應(yīng)的屬性和方法。
3. 原型模式
原型模式是 JavaScript 中比較重要也比較難理解的概念之一。每個(gè)函數(shù)都有一個(gè) prototype 屬性,這個(gè)屬性是指向原型對(duì)象(prototype object)的引用。而原型對(duì)象本身就是包含所有實(shí)例共享的屬性和方法。
function Person() {}
Person.prototype.name = '張三';
Person.prototype.age = '20';
// 實(shí)例化
var person1= new Person();
console.log(person1.name); // 張三
// 修改原型上某個(gè)公共變量或方法:
Person.prototype.gender='男';
console.log(person2.gender);//男
從上述代碼可以看到,在創(chuàng)建構(gòu)造函數(shù)后,為其添加不同類型事物所需公共變量和方法,再通過實(shí)例化去調(diào)用。同時(shí)還可以在原型上添加公共變量或方法。
4. Object.create() 方法
Object.create() 是一種創(chuàng)建對(duì)象的新方式,它不使用構(gòu)造函數(shù)也不使用類,而是直接基于現(xiàn)有的對(duì)象來創(chuàng)建新的對(duì)象。
var person1 = {
// 創(chuàng)建一個(gè)新的對(duì)象,并將其原型設(shè)置為 person1
var person2 = Object.create(person1);
從上面代碼中我們可以看到,在 `person2` 對(duì)象中并沒有定義屬性和方法,但是卻能夠訪問 `person1` 中已經(jīng)定義好了屬性和方法。這就是因?yàn)?`person2` 的原型指向了 `person1` ,所以它們之間具有繼承關(guān)系。
以上就是 JavaScript 對(duì)象幾種常見創(chuàng)建方式。每一種方式都各有優(yōu)缺點(diǎn),在具體開發(fā)過程中應(yīng)當(dāng)根據(jù)需求選擇最合適、最高效、最易讀懂的方式進(jìn)行編碼設(shè)計(jì)。
掌握J(rèn)avaScript 對(duì)象相關(guān)知識(shí)要點(diǎn)對(duì)前端工程師來說至關(guān)重要,因此建議大家多花時(shí)間學(xué)習(xí)與實(shí)踐,并注重理論與實(shí)踐相結(jié)合。
文章名稱:深入了解JavaScript對(duì)象的幾種創(chuàng)建方式
文章來源:http://www.5511xx.com/article/cdcjoio.html


咨詢
建站咨詢
