js 建立物件的幾種方式

2021-07-10 02:55:22 字數 1745 閱讀 4974

一:原始方式

解釋:原始方法建立物件,通過new關鍵字生成乙個物件,然後根據js是動態語言的特性新增屬性和方法,構造乙個物件。其中this是表示呼叫該方法的物件。

缺點:多次建立物件,則需要重複**多次,不利於**的復用。

二:工廠模式

var getage = function ()

var getname =function ()

function  person()

//呼叫

var student = person();

alert(student.name);

說明:1.在函式中定義物件,並定義物件的各種屬性,雖然屬性可以為方法,但是建議將屬性為方法的屬性定義到函式之外,這樣可以避免重複建立該方法。

2.引用該物件的時候,使用的是var student = person();而不是var student = new person();因為該函式裡面已經建立了物件

3.在函式的最後返回該物件

4.不推薦使用這種方式建立物件,但應該了解。

三:建構函式方式

function person(name,age)

this.getage=function()

}var student = new person("sly",18);

student.getname();

student.getage();

說明:1.與工廠方式相比,使用建構函式建立物件,無需在函式內部重新建立物件,而使用this指代,並且無需return

2.同工廠模式一樣,雖然屬性的值可以為方法,仍建議將該方法定義在函式之外。

3.同樣,不推薦使用這種方式建立物件,但仍需要了解

四:原型模式

var getage = function ()

var getname =function ()

funcction person()

person.prototype.name="sly";

person.prototype.age="18";

person.prototype.getname=getname;

var student = new person();

alert(student.name);

說明:1.函式中不對屬性進行定義

2.利用prototype屬性對屬性,方法進行定義

3.呼叫方法的過程:呼叫student.getname();先看例項中有沒有,有調則用,沒有的話則追蹤到原型,有調之,沒有則呼叫失敗。

4.不推薦使用這種方式建立物件

五:混合的建構函式,原型方式(推薦)

function person(name,age)

person.prototype.getname = function()

var student = new person("sly","18");

alert(student.getname());

說明:1.該模式是指混合搭配使用建構函式和原型方式

2.將所有的不是方法的屬性放到建構函式中定義,將所有屬性值為方法的屬性利用prototype定義

六:動態原型方法

function person(name,age)

person.getname = true;//設定為true,不必再為prototype新增方法。}}

說明:這種方法和建構函式/原型方式大同小異。只是將方法的新增放到了建構函式之中,同時在建構函式person上新增了乙個屬性用來保證if語句只能成功一次。

js 建立物件的幾種方式

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

js建立物件的幾種方式

雖然object建構函式或物件字面量都可以建立單個物件,但這些方式有個明顯的缺點,那就是使用同乙個介面創造很多物件,會產生大量的重複 所以產生了下面幾種模式。1 工廠模式 function createperson name,age,job o.name name o.age age o.job j...

js建立物件的幾種方式

js高階程式設計有很詳細的說明,這裡就不做詳解了,只是做個筆記和總結,方便記憶和理解 1 工廠模式 最簡單的模式,生產並返回乙個object物件 function createper name var p1 createper js 2 建構函式形式,比較常用的形式,在元件封裝中經常用到。funct...