js之建立物件(摘自高程)

2022-08-18 08:07:14 字數 1828 閱讀 6340

工廠模式

function

factorial(name,age);

return

o; }

var result=factorial("lily",25);

result.sayname();

缺點:沒有解決物件識別問題,即無法知道物件的型別

建構函式模式

function

person(name,age)

}var obj=new person("lily",30);

優點:沒有顯式的建立物件;

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

沒有return語句;

缺點:每個方法都要在每個例項上重新建立一遍

原型模式

缺點:原型中所有屬性是被很多例項共享的,這種共享對於函式非常合適。對於那些包含基本值的屬性倒也說得過去,畢竟,通過在實力上新增乙個同名的屬性,可以隱藏原型中的對應屬性,但對於包含引用型別值得屬性來說,問題就比較突出了,如下**所示:

function

person()

person.prototype.name="lily";

person.prototype.age="25";

person.prototype.sayname=function

(); person.prototype.friend=["lucy","fang"];

var newobj=new

person();

newobj.friend.push("newfriend");

var newobj02=new

person();

alert(newobj02.friend);

混合模型

function

mixedfunction(name,age)

mixedfunction.prototype.sayname=function

();

var mixobj=new mixedfunction("lily",25);

mixobj.sayname();

動態原型模式

就是通過檢查某個應該存在的方法是否有效,來決定是否需要初始化原型

function

dynamicfunction(name,age)}}

var obj=new dynamicfunction("liy",25);

obj.sayname();

寄生構造模式

(除了使用new操作符並把使用的包裝函式之外,這個模式跟工作模式其實一樣)

該函式的作用僅僅是封裝建立物件的**,然後再返回新建立的物件

function

person(name,age);

return

o; }

var friend=new person("lily",25);

friend.sayname();

穩妥建構函式

這種方式適合用在不允許引用this的物件,穩妥物件最適合在一些安全的環境中(這些環境中會禁止使用this和new),或者在防止資料被其他應用程式(如mashup)改動時使用

function

person(name,age);

return

o; }

var friend=new person("lily",25);

friend.sayname();

該函式中的name只允許呼叫sayname()方法外,沒有別的方式可以訪問其name值

js物件導向之物件建立篇

建立物件的方式 1.object建構函式或者物件字面量建立當物件 2.建構函式建立物件 3.工廠模式 4.原型模式 5.原型和建構函式組合模式 6.動態原型模式 7.寄生建構函式模式 8.穩妥建構函式模式 缺點使用乙個介面建立很多物件,會產生大量重複 這種模式抽象了建立具體物件的過程.考慮到在ecm...

js建立物件之工廠模式

提取js 建立物件 工廠模式 ecmascript無法建立類,開發人員就發明了一種函式,用函式來封裝以特定介面建立物件的細節 function createperson name age job return o var person1 createperson 寶清老窖 29 software e...

js 建立js物件

js建立類有集中方法,我個人比較喜歡的方式是 混合的建構函式 原型方式 比較好理解 用建構函式來定義非函式屬性,用原型方式定義物件的函式屬性,結果所有函式鬥只建立一次,而每個物件鬥具有自由的物件屬性例項。function ocar color ocar.prototype.showcolor fun...