亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

javascript每日必學之繼承

2019-11-20 10:32:03
字體:
來源:轉載
供稿:網友

朋友們大家好,我們今天這一講就接著前面的封裝繼續講解,今天就是在前面內容上面的升級,OOP思想中的繼承,我們就先來解釋一下繼承到底是什么意思,我們在什么地方會用到繼續。

  繼承就是,后代繼續祖先的一系列屬性,行為。后代仍然算是與祖先同族,下面我們再用一些具體描述,來理解一下什么是繼承

中國人,跟美國人都是 繼承自 人類祖先,所以我們具有相同的屬性行為,但是還有一定的差異,后面我們們將繼續講到的多態,所以通過上面的示例圖,我們可以清晰的知道,人與人之前其實大同小異,所以我們再看看下面的示例代碼,我們就知道,用代碼來模擬繼承,我們就又可以知道一種方法來寫盡量少的代碼達到做盡量多的事。

//遺傳繼承函數function Extend(Children,Parent){  //這里僅僅只是繼承的原型鏈接定義的行為  for(var p in Parent.prototype){    Children[p] = Parent.prototype[p];  }}//人類祖先function Human(){  this.weight = "50kg";  this.height = "180cm";  this.hair = "棕色";}//吃飯Human.prototype.Eat = function(){  console.log("吃飯");}//說話Human.prototype.Say = function(){  console.log("大家好我是地球人");}//行走Human.prototype.Walk = function(){  console.log("我是人類,天生就可以兩條腿直立行走");}//繁衍Human.prototype.Multiply = function(){  console.log("跟老婆一起做羞羞的事,就是為了人類的繁榮");}//中國人function Chinese(){  //調用繼承函數  Extend(this,Human);}//美國人function American(){  //調用繼承函數  Extend(this,Human);}

我們就這樣寫,就模擬了高級語言中的繼承,下面我們看看運行后,有沒有問題

運行后,我們發現了問題,這樣寫,我們已經可以實現原型鏈接的繼承了,而且也大大的節省了很多代碼,我們在寫Chinese和American函數的時候,是不是只寫了少量代碼,我們就把父類行為給繼承過來了,而實例也能調用父類所擁有的行為函數,但是這樣寫,我們還沒有完全實現繼承,因為我們在調用hair屬性的時候就根本沒有起到作用,那么,我們再修改一下代碼,就可以實現完全繼承了

//遺傳繼承函數function Extend(Children,Parent){  //現在我們是從父類實例來繼承,所以屬性和方法都會被繼承的  for(var p in Parent){    if(typeof Children[p] == "undefined"){      Children[p] = Parent[p];    }  }}//人類祖先function Human(){  this.weight = "50kg";  this.height = "180cm";  this.hair = "棕色";}//吃飯Human.prototype.Eat = function(){  console.log("吃飯");}//說話Human.prototype.Say = function(){  console.log("大家好我是地球人");}//行走Human.prototype.Walk = function(){  console.log("我是人類,天生就可以兩條腿直立行走");}//繁衍Human.prototype.Multiply = function(){  console.log("跟老婆一起做羞羞的事,就是為了人類的繁榮");}//中國人function Chinese(){  //調用繼承函數  Extend(this,new Human());}//美國人function American(){  //調用繼承函數  Extend(this,new Human());}

我們還是要看一下運行的效果是不是跟我們想象中的一樣?

通過上在的代碼我們不難看出,現在的繼承函數實際上是從Human類的具體實例中復制的屬性及行為,這樣我們就更進一步模擬出了類的繼承,在上面有一句,我還需要給大家解釋一下

if(typeof Children[p] == "undefined"){ ...... }

這里出現的typeof關鍵字其實是一個運算符,是查看某個變量是什么類型,如果是未定義的情況,運算出的結果就是 "undefined" ,所以我就是這樣比較,如果子類沒有定義過這樣的屬性或者行為函數,那么就從父類繼承(注:這里的解釋是為了后面的多態作鋪墊)。

  接下來我們再來看一下可不可以多重繼承,前面我們已經提到Chinese與American兩個類都是繼承自Human類,下面我們再寫一個類來繼承自Chinese

//四川人function SiChuanMan(){  Extend(this,new Chinese());}

現在我們已經寫出很健壯的繼承代碼,理解也非常的簡單,只要在聲明新類的時候,在構造函數里面調用一下繼承函數,我們就可以實現屬性及行為函數的完全繼承,這樣,我們就可以省下大量的代碼,OOP思想的優勢再一次地被體現了出來,如果我們要模擬中國每個省份的人,如果我每個省份都照著Human類的方式去寫,從太陽出來寫到第二天的太陽落坡都寫不完。繼承的寫法多種多樣,每個人都有自己的寫法,這里,我就是以一種最簡單的方式給大家講解的,到后面大家能熟練使用時候,也可以以自己喜歡的方式去寫,javascript本身就是一門很靈活的語言。

  總結一下,我們今天在封裝基礎上進一步做了升級,這樣我們就實現了對象的繼承,書寫的代碼量被進一步被壓縮,想想能提高工作的效率,更能提高代碼的優雅度,是不是有一點的小激動呢,只要跟著我腳步走,我們就可以用最簡單的方式去理解最復雜的東西,其實程序并不復雜,復雜的原因是大家沒有得到正確的帶領,本來很簡單的一個東西,被不同的人理解及解釋成不同的東西,這樣學習起來就復雜了,更多的是沒有連續的教程一步一步地帶領大家向正確的方向邁進,所以很長時間都很難得到提升。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美高清在线视频观看不卡| 久久久久久久亚洲精品| 91成人在线播放| 国产精品综合久久久| 日韩精品中文字幕有码专区| 国产亚洲欧美日韩一区二区| 中文字幕视频一区二区在线有码| 国产精品入口福利| 欧美激情欧美激情在线五月| 国产日本欧美视频| 性欧美xxxx视频在线观看| 久99九色视频在线观看| 91最新国产视频| 精品一区二区三区三区| 欧美性高潮床叫视频| 国产精品久久综合av爱欲tv| 国产99久久精品一区二区 夜夜躁日日躁| 国产成人精品在线观看| 久久久久久久久久久亚洲| 中文字幕九色91在线| 欧美黄网免费在线观看| 最好看的2019年中文视频| 久久成人av网站| 97人人模人人爽人人喊中文字| 亚洲欧美日韩直播| 91在线高清免费观看| 伊人成人开心激情综合网| 久久久久久久久久久久久久久久久久av| 青草青草久热精品视频在线网站| 亚洲国产天堂久久综合网| 在线播放国产一区二区三区| 秋霞午夜一区二区| 午夜精品免费视频| 中文字幕在线国产精品| 国产一区视频在线播放| 亚洲成人a**站| 久久99久久99精品中文字幕| 中文字幕视频在线免费欧美日韩综合在线看| 亚洲精品动漫久久久久| 国产精品无av码在线观看| 日韩免费看的电影电视剧大全| 日韩av大片免费看| 欧美精品激情在线观看| 黑人狂躁日本妞一区二区三区| 成人在线播放av| 欧美激情中文字幕乱码免费| 羞羞色国产精品| 在线观看日韩欧美| 91影视免费在线观看| 亚洲视频欧洲视频| 亚洲日韩欧美视频| 国产91在线播放精品91| 欧美www在线| 亚洲欧美成人在线| 欧美天堂在线观看| 国产亚洲欧洲高清| 久久视频中文字幕| 国产一区二区三区毛片| 欧洲中文字幕国产精品| 国产精品99久久久久久久久久久久| 国产精品久在线观看| 大量国产精品视频| 午夜精品久久久久久久99黑人| 欧美精品激情blacked18| 97超碰蝌蚪网人人做人人爽| 国产高清在线不卡| 欧美精品一区二区三区国产精品| 欧美亚洲成人免费| 欧美激情亚洲自拍| 亚洲福利在线播放| 欧美日韩一二三四五区| 日韩在线观看视频免费| 成人免费观看49www在线观看| 国产色婷婷国产综合在线理论片a| 久久精品成人动漫| 欧美大肥婆大肥bbbbb| 久色乳综合思思在线视频| 精品呦交小u女在线| 亚洲国产成人精品久久| 欧美在线播放视频| 欧美精品久久久久久久久久| 国产免费亚洲高清| 亚洲成人精品在线| 精品久久久久久电影| 久久精品亚洲94久久精品| 色偷偷偷亚洲综合网另类| 日韩视频免费中文字幕| 亚洲乱码一区二区| 亚洲国产成人精品电影| 中文字幕欧美视频在线| 欧美成人亚洲成人日韩成人| 亚洲图片欧美午夜| 成人伊人精品色xxxx视频| 欧美巨乳美女视频| 综合国产在线观看| 中文字幕日韩高清| 国产一区深夜福利| 国产午夜精品理论片a级探花| 亚洲欧美日韩爽爽影院| 永久免费看mv网站入口亚洲| 欧美激情综合色综合啪啪五月| 亚洲第一二三四五区| 国产日韩在线一区| 国产精品一区电影| 中文字幕在线观看日韩| 久久久久久久一区二区| 成人444kkkk在线观看| 欧美性猛交视频| 国产精品麻豆va在线播放| 欧美高清视频免费观看| 国产视频999| 亚洲国产欧美自拍| 日韩福利在线播放| 不卡毛片在线看| 91精品国产91久久久久久不卡| 日韩中文字幕在线视频播放| 亚洲国产精品久久久| 综合激情国产一区| 亚洲一区中文字幕在线观看| 亚洲自拍偷拍一区| 欧美日韩国产限制| 亚洲xxxx妇黄裸体| 亚洲精品成人久久电影| 日韩激情视频在线播放| 欧美视频免费在线| 97视频在线播放| www.欧美精品| 成人免费xxxxx在线观看| 久久资源免费视频| 日韩成人中文字幕在线观看| 一区二区在线视频| 中文字幕日韩欧美在线| 亚洲人a成www在线影院| 久久久精品2019中文字幕神马| 久久久久久久爱| 在线观看成人黄色| 日韩av网站导航| 日韩人在线观看| 久久亚洲精品成人| 欧美高清在线播放| 亚洲国产精品资源| 欧美日韩在线视频观看| 人人澡人人澡人人看欧美| 中文字幕综合在线| 最近中文字幕mv在线一区二区三区四区| 欧美在线观看网站| 欧美精品videossex88| 亚洲欧美日韩国产成人| 国产精品中文在线| 日韩视频免费在线观看| 国外色69视频在线观看| 欧美黄色小视频| 中文字幕精品在线| 国产成人亚洲综合91精品| 亚洲一区二区三区四区视频| 欧美限制级电影在线观看| 狠狠综合久久av一区二区小说| 久久久国产一区二区三区| 日韩av不卡在线| 亚洲精品av在线播放| 国产区精品视频| 日日狠狠久久偷偷四色综合免费| 欧美精品www在线观看| 国产日韩在线一区|