av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

《javascript設(shè)計模式》學(xué)習(xí)筆記二:Javascript面向?qū)ο蟪绦蛟O(shè)計繼承用法分析

瀏覽:109日期:2023-11-06 10:46:34

本文實例講述了Javascript面向?qū)ο蟪绦蛟O(shè)計繼承用法。分享給大家供大家參考,具體如下:

1.關(guān)于繼承:

百度百科對繼承的解釋是:繼承是指一個對象直接使用另一對象的屬性和方法。

(話說百科對于計算機(jī)概念的繼承的解釋也太簡略了)

繼承的好處,優(yōu)點學(xué)過面向?qū)ο蟮耐瑢W(xué)都知道,就不贅述了。

javascript中的繼承有三種(不同的書上對這三中的名稱翻譯都不一樣,我按照我的理解來命名吧):

a.構(gòu)造函數(shù)繼承(類式繼承,組合繼承,偽經(jīng)典繼承) b.原型繼承 c.原型賦值(遍歷)繼承(寄生式繼承)2.構(gòu)造函數(shù)繼承

所謂的構(gòu)造函數(shù)繼承,就是通過創(chuàng)建一個新對象,調(diào)用父類構(gòu)造函數(shù)實現(xiàn)的一種繼承;(知識點:函數(shù)對象的原型會有一個屬性叫constructor, constructor實際指向的是這個函數(shù))

function person(name){ this.name = name;}extend(author, person);function extend(subclass, superclass){ var f= function(){}; f.prototype = superclass.prototype;//f.prototype.constructor = superclass subclass.prototype = new f();//這里調(diào)用的實際上是superclass(),這樣subclass.prototype.construcor = superclass subclass.prototype.constructor = subclass;//將subclass的構(gòu)造函數(shù)改寫為正常的自身的構(gòu)造函數(shù)}3.原型式繼承

我們知道javascript在引用一個對象的屬性時,首先會去讀這個對象是否有這個屬性,如果沒有會繼續(xù)看這個對象的原型是否有這個屬性;

var person ={}var author = clone(person);function clone(obj){ function F(){}; F.prototype = obj; return new F;}

clone函數(shù)的作用就是把父類的所有成員都給了新對象的prototype,成為了新對象prototype的成員,因此子類在引用一個父類屬性時,都能在prototype中找到,但是這種方式繼承是的所有克隆出來的對象都共享每個屬性和方法的唯一實例(因為都是通過原型讀?。?,只有在直接設(shè)置了某個克隆出來的對象的屬性和方法(變?yōu)閷ο螵?dú)立屬性),情況才會有變化。

4.原型賦值(遍歷)繼承

這種賦值比原型賦值好的一點在于它控制繼承的范圍

var person = {};augment(author, person);//參數(shù)最少兩個,超過兩個則表示指定要繼承的成員function augment(receivingclass, givingclass){ if(arguments[2]){ for(var i=2;i<arguments.length;i++){ receivingclass.prototype[arguments[i]] = givingclass.prototype[arguments[i]]; } } else{ for(methodname in givingclass.prototype){ receivingclass.prototype[methodname] = givingclass.prototype[methodname]; } }}

這種方式比較適用于var obj這樣定義的對象,而不是用函數(shù)來定義的對象,如果使用函數(shù)定義的對象,同時又要指定繼承的成員,別忘了constructor

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運(yùn)行效果。

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》

希望本文所述對大家JavaScript程序設(shè)計有所幫助。

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 免费久久精品视频 | 欧美日韩在线视频一区 | 一级毛片免费 | 7777在线视频 | 超级碰在线 | 久久黄网 | 一区二区三区四区不卡视频 | 激情婷婷成人 | 久久99精品久久久久久琪琪 | 成人在线视 | 一区二区三区四区电影视频在线观看 | 9久久精品 | 国产精品日韩一区二区 | 欧美黄色片 | 狠狠视频 | 亚洲国产成人精品久久 | 亚洲三区在线 | 久国久产久精永久网页 | 国产精品欧美一区二区三区不卡 | 国产精品中文字幕在线观看 | 在线 丝袜 欧美 日韩 制服 | 日韩在线播放第一页 | 欧美国产日韩一区 | 天天看天天爽 | 另类视频区 | 国产精品www| 国产成人艳妇aa视频在线 | 91精品国产综合久久久久久 | 国产美女在线播放 | 成人国产一区二区三区精品麻豆 | 亚洲精品乱码8久久久久久日本 | 七七婷婷婷婷精品国产 | 国产在线一区二区三区 | 国产精品99久久久久久宅男 | 一区二区三区中文字幕 | 欧美一区二区免费 | 久久精品一区二区三区四区 | 国产欧美一级二级三级在线视频 | 一级二级三级黄色 | 国产精品精品视频 | 日韩在线免费播放 |