javascript中如何實現(xiàn)封裝,繼承和多態(tài),并有詳細的示例

javascript中如何實現(xiàn)封裝,繼承和多態(tài),并有詳細的示例

ID:9880730

大?。?82.01 KB

頁數(shù):0頁

時間:2018-05-11

javascript中如何實現(xiàn)封裝,繼承和多態(tài),并有詳細的示例_第頁
預(yù)覽圖正在加載中,預(yù)計需要20秒,請耐心等待
資源描述:

《javascript中如何實現(xiàn)封裝,繼承和多態(tài),并有詳細的示例》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、JavaScript與OOP李贊紅歡迎交流:lifenote@21cn.com1目標Function對象的apply方法自定義對象封裝繼承多態(tài)2apply()Javascript的每個Function對象中有一個apply方法語法:function.apply([thisObj[,argArray]])功能:可以用來代替另一個對象調(diào)用一個方法,將一個函數(shù)的對象上下文從初始的上下文改變?yōu)橛蓆hisObj指定的新對象。用來模擬多態(tài)另外一個相似的方法function.call([thisObj[,arg1[,arg2[,[,.argN]]]]])3示例functi

2、onObject1(name){this.name=name;this.fun1=function(){alert("這是第一個方法。");};this.fun2=function(){alert("這是第二個方法。");};}functionObject2(name){Object1.apply(this,[name]);}varo2=newObject2("中華人民共和國");o2.fun1();o2.fun2();alert(o2.name);4基本概念自定義對象根據(jù)JS的對象擴展機制,用戶可以自定義JS對象,這與Java語言有類似的地方。如:Math

3、、Date、String等原型(prototype)通過prototype可以為對象在運行期間添加新的屬性和方法。5創(chuàng)建對象(1)對象初始化器方式語法objectName={property1:value1,property2:value2,…,propertyN:valueN,method1:function(arguments){…},…}其中:property是對象的屬性,value則是對象的值,值可以是字符串、數(shù)字或?qū)ο笕咧弧?示例varUsers={name:"中國",register:function(i){alert("注冊了"+i+"次"

4、);}};Users.register(3);alert(Users.name);7創(chuàng)建對象(2)構(gòu)造函數(shù)方式編寫一個構(gòu)造函數(shù),并通過new方式來創(chuàng)建對象,構(gòu)造函數(shù)本可以帶有構(gòu)造參數(shù)??梢栽趯ο笾卸x私有成員、實例成員和類成員8示例//訂單構(gòu)造函數(shù)functionOrder(date,total){this.date=date;this.total=total;this.calc=function(name){alert(name+"正在統(tǒng)計"+this.date+"下的訂單,總數(shù)為"+this.total);}}varo=newOrder(newDate(

5、),10);o.calc("李贊紅");9對象屬性的定義私有屬性私有屬性只能在構(gòu)造函數(shù)內(nèi)部定義與使用。實例屬性必須在對象實例化后才能使用prototype方式,語法格式:functionName.prototype.propertyName=valuethis方式,語法格式:this.propertyName=value類屬性直接通過類名去使用語法格式:functionName.propertyName=value10示例functionCustomer(){this.name="北大青鳥";//對象屬性varbrowser=(document.all?"I

6、E":"FireFox");//私有屬性Customer.prototype.theBrowser=browser;//對象屬性}Customer.company="北大青鳥教育集團";//類屬性//Testalert(Customer.company);varc=newCustomer();alert(c.name+"r"+c.theBrowser);11對象方法的定義私有方法私有方法只能在對象內(nèi)部使用實例方法實例方法必須在對象實例化后才能使用語法與對象屬性相同類方法類方法可以直接通過類名去使用12示例functionMiss(){varyou=fu

7、nction(){alert(“Missyou”);}//私有方法this.me=function(){alert(“missme”);}//對象方法//對象方法Miss.prototype.he=function(){alert("misshim");}}//類方法Miss.she=function(){alert("missshe");}Miss.she();varm=newMiss();m.me();m.he();13小結(jié)14動態(tài)刪除屬性和方法對于已經(jīng)實例化的對象,我們可以動態(tài)增加和刪除它的屬性與方法語法:動態(tài)刪除對象屬性deleteobj.prope

8、rtyName動態(tài)刪除對象方法deleteobj.m

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。