JS物件建立的幾種方式整理

2022-02-06 03:00:03 字數 2115 閱讀 4160

​ 本文主要介紹了js物件建立的幾種方式

var person = new object();

person.name = 'nike';

person.age = 29;

var person = {};//相當於var person = new object();

var person =

物件字面量是物件定義的一種簡寫形式,目的在於簡化建立包含大量屬性的物件的過程。也就是說,第一種和第二種方式建立物件的方法其實都是一樣的,只是寫法上的區別不同

function createperson(name,age,job);

return o;

}var person1 = createperson('nike',29,'teacher');

var person2 = createperson('arvin',20,'student');

function person(name,age,job); 

}var person1 = new person('nike',29,'teacher');

var person2 = new person('arvin',20,'student');

對比工廠模式,我們可以發現以下區別:

1.沒有顯示地建立物件

2.直接將屬性和方法賦給了this物件

3.沒有return語句

4.終於可以識別的物件的型別。對於檢測物件型別,我們應該使用instanceof操作符,我們來進行自主檢測:

alert(person1 instanceof object); //ture

alert(person1 instanceof person); //ture

alert(person2 instanceof object); //ture

alert(person2 instanceof object); //ture

同時我們也應該明白,按照慣例,建構函式始終要應該以乙個大寫字母開頭,而非建構函式則應該以乙個小寫字母開頭。

那麼建構函式確實挺好用的,但是它也有它的缺點:

function person(){}

person.prototype.name = 'nike';

person.prototype.age = 20;

person.prototype.jbo = 'teacher';

person.prototype.sayname = function();

var person1 = new person();

person1.sayname();

使用原型建立物件的方式,可以讓所有物件例項共享它所包含的屬性和方法。

如果是使用原型建立物件模式,請看下面**:

function person(){}

person.prototype.name = 'nike';

person.prototype.age = 20;

person.prototype.jbo = 'teacher';

person.prototype.sayname = function();

var person1 = new person();

var person2 = new person();

person1.name ='greg';

alert(person1.name); //'greg' --來自例項

alert(person2.name); //'nike' --來自原型

當為物件例項新增乙個屬性時,這個屬性就會遮蔽原型物件中儲存的同名屬性。

function person(name,age,job)

person.prototype = ;

}var person1 = new person('nike',20,'teacher');

對JS關於物件建立的幾種方式的整理

最近一直在看js高階程式設計這本書,有空來梳理一下幾種建立物件的方式。話不多說,直接步入正題。第一種 object建構函式建立 var person new object person.name nike person.age 29 這行 建立了object引用型別的乙個新例項,然後把例項儲存在變數...

js 建立物件的幾種方式

一 原始方式 解釋 原始方法建立物件,通過new關鍵字生成乙個物件,然後根據js是動態語言的特性新增屬性和方法,構造乙個物件。其中this是表示呼叫該方法的物件。缺點 多次建立物件,則需要重複 多次,不利於 的復用。二 工廠模式 var getage function var getname fun...

js 建立物件的幾種方式

第一種 工廠模式 例1 function createobj name,age return o var per1 createobj 張三 20 per1.sayinfo 缺點 無法知道物件的型別 第二種 建構函式模式 例2 function person name,age var per2 ne...