資源描述:
《淺析在javascript中創(chuàng)建對象的各種模式》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、我真正系統(tǒng)地接觸和學(xué)習(xí)黨的基本知識是在這次中級黨校的培訓(xùn)班上。通過學(xué)習(xí),了解了黨的發(fā)展歷程,對黨的性質(zhì)、宗旨、任務(wù)等基本知識有了進一步的了解淺析在javascript中創(chuàng)建對象的各種模式 下面小編就為大家?guī)硪黄獪\析在javascript中創(chuàng)建對象的各種模式。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考?! ∽罱诳础秊avascript高級程序設(shè)計》(第二版) javascript中對象的創(chuàng)建 ?工廠模式 ?構(gòu)造函數(shù)模式 ?原型模式 ?結(jié)合構(gòu)造函數(shù)和原型模式 ?原型動態(tài)模式 面向?qū)ο蟮恼Z言大都有一個類的概念,通過類可以創(chuàng)建多個具有相同方法和屬性的
2、對象。雖然從技術(shù)上講,javascript是一門面向?qū)ο蟮恼Z言,但是javascript沒有類的概念,一切都是對象。任意一個對象都是某種引用類型的實例,都是通過已有的引用類型創(chuàng)建;引用類型可以是原生的,也可以是自定義的。原生的引用類型有:Object、Array、Data、RegExp、Function。!引用類型就是一種數(shù)據(jù)結(jié)構(gòu),將數(shù)據(jù)和功能組織在一起,通常被稱為類。缺乏類概念的javascript中,需要解決的問題就是如何高效的創(chuàng)建對象?! ?.1.0.創(chuàng)建對象的一般方法對黨的認識也有了進一步的提高。才真正體會到了中國共產(chǎn)黨的偉大、光榮和正確,更感到只有中國共產(chǎn)黨是
3、全中國最廣大人民利益的忠實代表我真正系統(tǒng)地接觸和學(xué)習(xí)黨的基本知識是在這次中級黨校的培訓(xùn)班上。通過學(xué)習(xí),了解了黨的發(fā)展歷程,對黨的性質(zhì)、宗旨、任務(wù)等基本知識有了進一步的了解 varperson={};//對象字面量表示,等同于varperson=newObjcect(); person.name='evansdiy'; person.age='22'; person.friends=['ajiao','tiantian','pangzi']; person.logName=function(){ ?console.log(this.name); } 基于O
4、bject引用類型,創(chuàng)建了一個對象,該對象包含四個屬性,其中一個為方法。如果需要很多類似person的實例,那就會有許多重復(fù)的代碼?! ?.1.1.工廠模式[top] 通過一個可以包含了對象細節(jié)的函數(shù)來創(chuàng)建對象,然后返回這個對象?! unctionperson(name,age,friends){ ?varo={ ??name:name, ??age:age, ??friends:friends, ??logName:function(){ ???console.log(this.name); ??}對黨的認識也有了進一步的提高。才真正體會到了中國共產(chǎn)
5、黨的偉大、光榮和正確,更感到只有中國共產(chǎn)黨是全中國最廣大人民利益的忠實代表我真正系統(tǒng)地接觸和學(xué)習(xí)黨的基本知識是在這次中級黨校的培訓(xùn)班上。通過學(xué)習(xí),了解了黨的發(fā)展歷程,對黨的性質(zhì)、宗旨、任務(wù)等基本知識有了進一步的了解 ?}; ?returno; } varperson1=person('Evansdiy','22',['ajiao','tiantian','pangzi']); 每次調(diào)用person函數(shù),都會通過該函數(shù)內(nèi)部的對象o創(chuàng)建新的對象,然后返回,除此之外,這個為了創(chuàng)建新對象而存在的內(nèi)部對象o沒有其他的用途。另外,無法判斷工廠模式創(chuàng)建的對象的類型?! ?.
6、1.2.構(gòu)造函數(shù)模式[top] functionPerson(name,age,job){ ?this.name=name; ?this.age=age; ?this.job=job; ?this.logName=function(){ ??console.log(this.name); ?} } //通過new操作符創(chuàng)建Person的實例 varperson1=newPerson('boy-a','22','worker'); varperson2=newPerson('girl-b','23','teacher');對黨的認識也有了進一步的提高
7、。才真正體會到了中國共產(chǎn)黨的偉大、光榮和正確,更感到只有中國共產(chǎn)黨是全中國最廣大人民利益的忠實代表我真正系統(tǒng)地接觸和學(xué)習(xí)黨的基本知識是在這次中級黨校的培訓(xùn)班上。通過學(xué)習(xí),了解了黨的發(fā)展歷程,對黨的性質(zhì)、宗旨、任務(wù)等基本知識有了進一步的了解 person1.logName();//boy-a person2.logName();//girl-a 對比工廠模式,可以發(fā)現(xiàn),這里并不需要創(chuàng)建中間對象,沒有return。另外,可以將構(gòu)造函數(shù)的實例標識為一種特定的類型,這就解決了對象識別的問題(通過檢查實例的constructor屬性,或利用i