黄色国产视频,男女啪啪18禁无遮挡激烈,久草热8精品视频在线观看,四虎国产精品永久在线下载

            JS繼承設計模式

            時間:2022-06-28 04:46:24 設計 我要投稿
            • 相關推薦

            JS繼承設計模式

              JavaScript中沒有類的概念,與類相關的繼承的概念更是無從談起,但是我們可以通過特殊的語法來模擬面向對象語言中的繼承。在JS中模擬繼承有多種方式,其中寄生組合模式是一種比較容易簡單的模擬繼承模式,下面我們就來介紹一下用寄生組合模式模擬繼承。JS的繼承包括屬性的繼承和方法的繼承,他們分別通過不同的方法來實現。

              1屬性的繼承

              屬性的繼承通過改變函數的執行環境來實現的。而改變函數的執行環境可以使用call()和apply()兩種方法來實現。

              我們首先創建一個Animal“類”(因為JS中沒有類的概念,這里只是一個模擬,它實際上只是一個Function函數對象)。

              復制代碼 代碼如下:function Animal(name){this.name=name;}

              再創建一個Lion“類”,“繼承”于Animal復制代碼 代碼如下:function Lion(){Animal.apply(this, ["獅子"]);}

              這里使用了Animal的apply方法,把Animal的執行環境改成Lion被調用時的執行環境。

              這里要解釋一下,我們要想使用Lion這個“類”,通常需要new一個Lion。如:var l = new Lion();

              而new關鍵字是十分偉大的,在上段代碼中,new關鍵字完成了以下幾項工作:

              1)開辟堆空間,以準備存儲Lion對象

              2)修改Lion對象本身的執行環境,使得Lion函數的this指向了Lion函數對象本身。

              3)調用Lion“類”的“構造函數”,創建Lion對象

              4)將Lion函數對象的堆地址賦值給變量l,這個時候l就指向了這個Lion函數對象

              所以經過new關鍵字以后Animal.apply(this, ["獅子"])中的this已經指向了Lion函數對象本身了,所

              以這段代碼就將Animal函數的執行環境改變成了Lion函數中,相當于以下代碼:

              復制代碼 代碼如下:

              function Lion(){function Animal(name){this.name=name;}}

              而此時的this已經是Lion函數對象了所以上段代碼進一步相當于:

              復制代碼 代碼如下:function Lion(){this.name=name;}

              這樣就給Lion函數對象添加了name屬性,也模擬了Lion函數繼承于Animal函數的效果。

              2方法的繼承

              在JS中每一個“類”(即函數,注意不是函數對象)都有一個prototype屬性,prototype表示該函數的原型,也表示一個類的成員的集合(通常是方法的集合)。我們可以通過函數的prototype屬性來實現方法的繼承。我們同樣首先創建一個Animal“類”:復制代碼 代碼如下:

              function Animal(name){this.name=name;}

              給Animal的原型中加入一個eat方法:復制代碼 代碼如下:

              Animal.prototype.eat=function(){alter("我能吃!~");}

              創建一個Lion“類”,同時完成對Animal“類”的屬性的繼承

              復制代碼 代碼如下:function Lion(){Animal.apply(this, ["獅子"]);}

              注意下面的代碼,我們馬上要完成方法的繼承了 Lion.prototype=new Animal();

              這樣就把一個Animal函數對象儲存在了Lion的原型中了,Lion也就包含了Animal中的方法了(其實也包含了屬性)。這樣就模擬了Lion函數對Animal的繼承。

            【JS繼承設計模式】相關文章:

            端午節js07-01

            js函數遞歸問題?07-09

            Python設計模式:工廠方法模式講解06-29

            設計模式課程設計報告07-03

            《傳統文化的繼承》教學設計07-12

            常見的網頁布局設計模式07-14

            傳統文化的繼承教學設計07-12

            傳統文化的繼承教學設計07-30

            傳統文化的繼承與發展活動設計示例07-02

            10款超實用的JS圖片特效07-09

            主站蜘蛛池模板: 日韩欧美精品在线播放| 国产AV大陆精品一区二区三区| 色屁屁www影院免费观看| 超碰碰碰| 日韩综合一区二区| mm1313亚洲精品国产| 成人免费无码大片a毛片直播| 99精品国产成人一区二区| 欧美一级性视频| 欧美日韩国产一二三| 92精品国产自产在线观看481页| 久久青青草原国产毛片| 成人看黄色s一级大片| 色狠狠色狠狠综合| 一区二区伦理| 成视人a免费观看 视频| 99久久99这里只有免费费精品 | 精品九| 久久99久国产精品66| 麻豆文化传媒精品一区观看| 欧美白人精品| 欧美理论片在线| 丰满少妇人妻HD高清大乳| 高清免费精品国自产拍| 8x8ⅹ国产精品一区二区二区| 欧美视频综合| 狠狠操在线| 亚欧乱色熟女一区二区三区| 亚洲成av人片在www鸭子| 亚洲区一| 美女色免费av| 国产成av人片在线观看天堂无码| 熟女肥臀白浆大屁股一区二区| 日本中文字幕在线看| 一区二区三区在线观看免费| 小sao货揉揉你的奶真大电影| 亚洲欧美日韩成人一区| 福利片国产| 色吧在线观看| 性xxxx视频播放| 精品国产精品中文字幕|