摘要:構(gòu)建類的方法使用來構(gòu)建類使用來構(gòu)建類使用來構(gòu)建類繼承父類的方法使用子類方法構(gòu)建子類,繼承父類,在與父類同名的方法中,第一個參數(shù)為,方法體內(nèi)使用來拓展父類的同名方法使用正常構(gòu)建類后,第一個方法使用來繼承父類,在子類的方法體中,使用來拓展父類的
構(gòu)建類的方法
Prototype.js使用Class.create來構(gòu)建類
Mootools.js使用new Class來構(gòu)建類
klass.js使用klass來構(gòu)建類
繼承父類的方法
Prototype.js使用Class.create(ParentClassName,{//子類方法})構(gòu)建子類,繼承父類,在與父類同名的方法中,第一個參數(shù)為$super,方法體內(nèi)使用$super(args)來拓展父類的同名方法
Mootools.js使用new Class正常構(gòu)建類后,第一個方法使用Extends:ParentClassName來繼承父類,在子類的方法體中,使用this.parent(args)來拓展父類的同名方法
klass.js使用ParentClassName.extend(//子類方法)來繼承父類,在子類的方法體中使用this.supr(args)來拓展父類的同名方法
在類的外面給類添加函數(shù),名稱雖然不一樣,但調(diào)用的方式都一樣,
Prototype.js有addMethods方法
Mootools.js有implement方法
klass.js有methods和implement方法
單純以構(gòu)建類和繼承類的方式,個人認(rèn)為
Mootools.js做的最好,子類和父類的構(gòu)建方式統(tǒng)一,子類繼承父類時方法清晰,而且在具有面向?qū)ο筇攸c的語言,都有extends關(guān)鍵字,而且父類也是在extends的后面
不習(xí)慣Prototype.js在每個需要拓展父類的同名方法的第一個參數(shù)中加$super,畢竟Mootools聲明了父類后,在同名方法中只需要加this.parent(args),而不用在參數(shù)內(nèi)再加上需要聲明父類的強調(diào)
klass的構(gòu)建子類的方法和其他兩個都不一樣,子類和父類的構(gòu)建方式就直接加上父類的名字再加上extend就可以,拓展父類的同名方法的時候,使用this.supr(args)來拓展。相當(dāng)想吐槽的就是supr這個名稱了,klass的源碼中到處充滿了這種不好好命名的參數(shù),以字母o,甚至是what來命名,真是特別的無語了,我會給作者提issue的
關(guān)于源碼中具體差異,待續(xù)
JS面向?qū)ο笙盗?/p>
《javascript高級程序設(shè)計》 繼承實現(xiàn)方式
prototype.js 是如何實現(xiàn)JS的類以及類的相關(guān)屬性和作用
Mootools.js 是如何實現(xiàn)類,以及類的相關(guān)屬性和作用
klass 是如何實現(xiàn)JS的類以及類的相關(guān)屬性和作用
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/84539.html
摘要:前面介紹了和是如何實現(xiàn)類,及其類的屬性和作用的。今天介紹的就是單純的實現(xiàn)面向?qū)ο蟮膸欤挥卸嘈校舱绽治霭伞? 前面介紹了prototype.js和Mootools.js是如何實現(xiàn)類,及其類的屬性和作用的。今天介紹的klass.js就是單純的實現(xiàn)面向?qū)ο蟮膸欤挥?0多行,也照例分析吧。 實現(xiàn)類的步驟 第一步是使用klass新建類,初始化的固定函數(shù)是initialize,不能使用其它...
摘要:實現(xiàn)類的步驟第一步是使用新建類,初始化的固定函數(shù)是,不能使用其它名稱子類也是使用新建,父類在子類中,使用來繼承,與子類的方法名,同一級別子類中與父類的同名方法,如果需要在父類的同名方法上拓展,需要在子類的同名方法內(nèi),使用如果需要在類的外面增 實現(xiàn)類的步驟 第一步是使用new Class新建類,初始化的固定函數(shù)是initialize,不能使用其它名稱 子類也是使用new Class新建...
摘要:實現(xiàn)類的步驟第一步是使用新建類,初始化的固定函數(shù)是,不能使用其它名稱子類也是使用新建,父類放在第一個參數(shù)中,如子類中與父類的同名方法,如果需要在父類的同名方法上拓展,在需要在第一個參數(shù)中使用,然后在方法體內(nèi)使用如果需要在類的外面增加方法,可 實現(xiàn)類的步驟 第一步是使用Class.create新建類,初始化的固定函數(shù)是initialize,不能使用其它名稱 子類也是使用Class.cr...
摘要:寄生式繼承的思路與寄生構(gòu)造函數(shù)和工廠模式類似,即創(chuàng)建一個僅用于封裝繼承過程的函數(shù),該函數(shù)在內(nèi)部已某種方式來增強對象,最后再像真的是它做了所有工作一樣返回對象。 這篇本來應(yīng)該是作為寫JS 面向?qū)ο蟮那白啵皇亲鳛椤秊avascript高級程序設(shè)計》繼承一章的筆記 原型鏈 code 實現(xiàn) function SuperType() { this.colors = [red,blu...
摘要:記錄學(xué)習(xí)的點點滴滴,方便日后查看。筆記源于網(wǎng)老師安裝官網(wǎng)下載安裝官網(wǎng)下載與電腦配版本,說明一下是長期支持版本是當(dāng)前最新版本。瀏覽器請求訪問此地址會出現(xiàn),第一個服務(wù)就完成了,是不是很簡單。模塊分類模塊分為核心模塊文件模塊第三方模塊。 記錄學(xué)習(xí) Node.js 的點點滴滴,方便日后查看。(筆記源于imooc網(wǎng)Scott老師) 1. 安裝 Node.js官網(wǎng):https://nodejs....
閱讀 1311·2023-04-26 03:05
閱讀 761·2021-10-19 11:43
閱讀 3206·2021-09-26 09:55
閱讀 826·2019-08-30 15:56
閱讀 979·2019-08-30 15:44
閱讀 1228·2019-08-30 15:44
閱讀 2717·2019-08-30 14:23
閱讀 3233·2019-08-30 13:13