javascript面向?qū)ο缶幊蘝第1頁
javascript面向?qū)ο缶幊蘝第2頁
javascript面向?qū)ο缶幊蘝第3頁
javascript面向?qū)ο缶幊蘝第4頁
javascript面向?qū)ο缶幊蘝第5頁
資源描述:

《javascript面向?qū)ο缶幊獭酚蓵T上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、javascript面向?qū)ο缶幊炭淇隧?xiàng)目部:王鎮(zhèn)煉目錄:一、Javascript面向?qū)ο缶幊痰乃枷攵?、?chuàng)建對象三、對象繼承四、實(shí)例操作五、總結(jié)一、Javascript面向?qū)ο缶幊痰乃枷?.用JavaScript實(shí)現(xiàn)類JavaScritpt沒有專門的機(jī)制實(shí)現(xiàn)類,這里是借助它的函數(shù)允許嵌套的機(jī)制來實(shí)現(xiàn)類的。一個函數(shù)可以包含變量,又可以包含其它函數(shù),這樣,變量可以作為屬性,內(nèi)部的函數(shù)就可以作為成員方法了。因此外層函數(shù)本身就可以作為一個類了。functionmyClass() { ????//此處相當(dāng)于構(gòu)造函數(shù)}這里m

2、yClass就是一個類。其實(shí)可以把它看成類的構(gòu)造函數(shù)。至于非構(gòu)造函數(shù)的部分,以后會詳細(xì)描述。二、創(chuàng)建對象1.如何獲得一個類的實(shí)例 ?????實(shí)現(xiàn)了類就應(yīng)該可以獲得類的實(shí)例,JavaScript提供了一個方法可以獲得對象實(shí)例。即new操作符。其實(shí)JavaScript中,類和函數(shù)是同一個概念,當(dāng)用new操作一個函數(shù)時就返回一個對象。如下:varobj1?=?newmyClass();2.對象的成員的引用 在JavaScript中引用一個類的屬性或方法的方法有以下三種。1>點(diǎn)號操作符對象名.屬性名;對象名.方法名;2

3、>方括號引用JavaScript中允許用方括號引用對象的成員。如下: 對象名["屬性名"];對象名["方法名"];3>使用eval函數(shù)如果不希望使用變量傳遞變量或方法名,又不想使用條件判斷,那么eval函數(shù)是一個好的選擇。eval接收一個字符串類型的參數(shù),然后將這個字符串作為代碼在上下文中執(zhí)行,返回執(zhí)行的結(jié)果。這里正是利用了eval的這一功能。如下:alert(eval("對象名."?+?element.value));3對象廢除把對象的所有引用都設(shè)置為null,可以強(qiáng)制性的廢除對象。例如:VaroObj=ne

4、wObject;oObj=null;當(dāng)變量oObject設(shè)置為null后,對第一個創(chuàng)建的對象的引用就不存在了。這意味著下次運(yùn)行無用存儲單元收集程序時,該對象將被銷毀。每用完一個對象后,就將其廢除,來釋放內(nèi)存,這是個好習(xí)慣。這樣還確保不再使用已經(jīng)不能訪問的對象,從而防止程序設(shè)計錯誤的出現(xiàn)4.公用、受保護(hù)和私有作用域?qū)avaScript討論這些作用域幾乎毫無意義,因?yàn)镴avaScript中只存在一種作用域——公用作用域。JavaScript中的所有對象的所有屬性和方法都是公用的。因此,定義自己的類和對象時,必須格

5、外小心。記住,所有屬性和方法默認(rèn)都是公用的。許多開發(fā)者都在網(wǎng)上提出了有效的屬性作用域模式,解決了JavaScript的這種問題。由于缺少私有作用域,開發(fā)者們制定了一個規(guī)約,說明哪些屬性和方法應(yīng)該被看作私有的。這種規(guī)約規(guī)定在屬性名前后加下劃線。例如:Obj._color=“red”;這段代碼中,屬性color是私有的。記住,這些下劃線并不改變這些屬性是公用屬性的事實(shí),它只是告訴其他開發(fā)者,應(yīng)該把該屬性看作私有的。5創(chuàng)建類的幾種方式1工廠方式2構(gòu)造函數(shù)方式3原型模式4混合的構(gòu)造函數(shù)/原型方式6、創(chuàng)建新方法可以用pr

6、ototype屬性為任何已有的類定義新方法,就像處理自己的類一樣。例如,還記得Number類的toString()方法嗎,如果給它傳遞16,它將輸出十六進(jìn)制的字符串。Number.prototype.toHexString=function(){returnthis.toString(16);}7、重定義已有方法就像能給已有的類定義新方法一樣,也可重定義已有的方法。函數(shù)名只是指向函數(shù)的指針,因此可以輕易地使它指向其他函數(shù)。三、對象的繼承說明繼承機(jī)制最簡單的方法是,利用一個經(jīng)典的例子——幾何形狀。在這個例子中,形

7、狀(Shape)是橢圓形(Ellipse)和多邊形(Polygon)的基類(baseclass)(所有類都由它繼承而來)。橢圓具有一個屬性foci,說明橢圓具有的焦點(diǎn)的個數(shù)。圓形(Circle)繼承了橢圓形,因此圓形是橢圓形的子類(subclass),橢圓形是圓形的超類(superclass)。同樣的,三角形(Triangle)、矩形(Rectangle)和五邊形(Pentagon)都是多邊形的子類,多邊形是它們的超類。最后,正方形(Square)繼承了矩形。1、創(chuàng)建對象首先考慮Polygon類。哪些屬性和方法

8、是必需的?首先,一定要知道多邊形的邊數(shù),所以應(yīng)該加入整數(shù)屬性sides。還有什么是多邊形必需的?也許你想知道多邊形的面積,那么加入計算面積的方法getArea()。2.創(chuàng)建子類現(xiàn)在考慮創(chuàng)建Triangle類。三角形具有三條邊,因此這個類必須覆蓋Polygon類的sides屬性,把它設(shè)置為3。還要覆蓋getArea()方法,使用三角形的面積公式,即1/2×底×高。但如何得到底和高的值呢?

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

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

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