JavaScript 建立物件的5種常見模式

2021-08-21 05:53:12 字數 1693 閱讀 9917

1、工廠模式

定義:以函式來封裝以特定介面建立物件的細節,其實就是通過函式來建立乙個物件並返回。

缺點:每次呼叫都會返回乙個物件,不能節省記憶體,同時物件例項無法獲取其物件型別。

function

createperson

(name,age,job);

return o;

}var person1=createperson("張三",25,"搬磚");

var person2=createperson("李四",30,"甩鍋");

2、建構函式模式
function

person

(name,age,job);

}var person1=new person("張三",25,"搬磚");

var person2=new person("李四",30,"甩鍋");

3、原型模式

定義:每個函式都有乙個prototype屬性,這個屬性是乙個指標,指向乙個物件,將例項的屬性和方法寫在構造

函式的prototype上,通過new來例項化。

優點:物件例項共享它所包含的屬性和方法。

缺點:缺點即是優點,最大的問題就是其共享性,例項可以修改建構函式prototype屬性值,影響其它例項。

function

person

()person.prototype=

}var person1=new person();

var person2=new person();

var person1.friends.push("陳七");

alert(person2.friends); // "李五,趙六,陳七"

4、建構函式模式+原型模式

定義:建構函式模式用於定義例項屬性,而原型模式用於定義方法和共享的屬性,每個例項都會有自己的乙份實

例屬性的副本,但是同時又共享著對方法的引用,最大限度的節省了記憶體。

優點:靈活、節省記憶體,是最廣泛、認同度最高的一種建立自定義型別的方法。

function

person

()person.prototype=

}var person1=new person();

var person2=new person();

var person1.friends.push("陳七");

alert(person2.friends); // "李五"

5、動態原型模式

定義:把所有資訊都封裝在了建構函式中,通過檢查某個應該存在的方法是否有效來,來決定是否初始化原型。

優點:保持建構函式和原型的優點,動態新增原型。

function

person

(name,age,job)

}}var person1=new person("張三",25,"搬磚");

person1.sayname();

小結:js中並沒有類的概念,js的物件可以定義為:無序屬性的集合,其屬性可以包含基本值、物件或者函式。建立物件的方法並非沒有最優,要根據不同情形使用不同的方式去建立物件,

javascript物件的建立

function createoject name,return object var aa createoject zhangsan nan aa.run 利用第一種方式的問題就是不能識別他是什麼物件 function myobject name,var testobect new myobjec...

JavaScript物件的建立

var person new object person.name cjh person.age 19 var person 需要注意的是,花括號內,成員與成員之間以逗號隔開,而最後乙個成員後不能跟逗號,否則會在ie7及更早的版本中報錯。成員名也可以直接使用字串。其一大優點是可以向函式傳遞大量引數。...

JavaScript建立物件

一 建立單個物件 方式一 object建構函式 var o new object o.key value 方式二 物件字面量 方式一和二缺點 使用相同的介面建立很多物件會產生大量重複 使用方式三解決 方式三 工廠模式 使用函式封裝以特定介面建立物件的細節 function createobject ...