日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Javascript組合繼承方法代碼實例解析

瀏覽:54日期:2023-11-06 15:07:59

Javascript組合繼承方法代碼實例解析

組合繼承

組合繼承,指將原型鏈和借用構造函數的技術組合到一塊,從而發揮二者之長的一種繼承模式。其背后思路使用用原型鏈實現對原型屬性和方法的繼承,而通過構造函數來實現對實例屬性的繼承。這樣,即通過在原型上定義方法實現了函數復用,又能夠保證每個實例都有它自己的屬性。

下面來看一個例子

function SuperType(name) { this.name = name; this.color = [’red’, ’blue’, ’green’];};//SuperType.prototype.sayName = function() { console.log(this.name);};//function SubType(name, age) { //繼承屬性 SuperType.call(this, name);// 第二次調用SuperType// this.age = age;};//繼承方法SubType.prototype = new SuperType();// 第一次調用SuperTypeconsole.log(SubType.prototype.constructor); //輸出SuperType函數的源碼,即此時SubType.prototype.constructor指向SuperType函數SubType.prototype.constructor = SubType; //將SubType.prototype.constructor指針指回SubType函數SubType.prototype.sayAge = function() { console.log(this.age);};//var instance1 = new SubType(’Jake’, 20)instance1.color.push(’black’);console.log(instance1.color); //’red,blue,green,black’instance1.sayName(); //’Jake’instance1.sayAge(); //20//var instance2 = new SubType(’Greg’, 21);console.log(instance2.color); //’red,blue,green’instance2.sayName(); //’Greg’;instance2.sayAge(); //21

觀察輸出結果,便可以發現:兩個SubType實例(instance1和instance2)既分別有自己的屬性,又可以使用相同的方法。

優點

組合繼承避免了原型鏈和借用構造函數的缺陷,融合了它們的優點,所以是JS中最常用的繼承模式。而且,instanceof和isPrototypeOf()也能夠用于識別基于組合繼承創建的對象。

缺點

調用兩次SuperType構造函數

在SubType.prototype上創建了不必要的屬性

寄生組合繼承

function SuperType (name) { this.name = name this.colors = [’red’, ’blue’, ’yellow’]}SuperType.prototype.sayName = function () { console.log(this.name)}function SubType (name, age) { SuperType.call(this, name) // 通過構造函數繼承實例屬性 this.age = age}SubType.prototype = Object.create(SuperType.prototype)//繼承父類共享方法SubType.prototype.constructor = SubType//將SubType.prototype.constructor指針指回SubType函數SubType.prototype.sayAge = function () { console.log(this.age)}let obj = new SubType(’jake’, 22)obj.sayName()// jakeobj.sayAge()// 22console.log(obj instanceof SubType)// trueconsole.log(obj instanceof SuperType)// true

優點

寄生組合繼承只調用了一次SuperType,所以更高效

避免了在SubType.prototype上創建了不必要的屬性

下面說說原型鏈和構造函數的缺點

原型鏈

缺點:當原型鏈中包含引用類型值時,原型屬性會被所有實例共享;

下面看一個例子

function SuperType() { this.color = [’red’, ’blue’, ’green’];}//function SubType() {};//SubType.prototype = new SuperType(); //繼承了SuperType//var instance1 = new SubType();instance1.color.push(’black’);console.log(instance1.color); //’red,blue,green,black’//var instance2 = new SubType();console.log(instance2.color); //’red,blue,green,black’

借用構造函數

缺點:如果僅僅使用構造函數,方法都在構造函數中定義,因此函數就無法實現復用了。而且,在超類型的原型中定義的方法,對于子類型而言也是不可見的。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
美国三级日本三级久久99| 欧美日韩在线网站| 91高清一区| 国产成人在线中文字幕| 日韩av网站免费在线| 亚洲久草在线| 欧美欧美黄在线二区| 91精品一区| 精品美女在线视频| 国产精品99视频| 久久久久国产精品一区二区| 欧洲av不卡| 视频一区中文字幕| 日韩精品第二页| 国产精品mm| 青青久久av| 免费视频国产一区| 亚洲最新av| 国产精品乱战久久久| 精品久久电影| 日韩一级网站| 国产精品久久久久久久久久妞妞| 黄色欧美在线| 性色一区二区| 麻豆精品国产91久久久久久| 999久久久亚洲| 青青草视频一区| 国产精品字幕| 国产欧美精品| 欧美+亚洲+精品+三区| 日韩区欧美区| 久久精品高清| 久久久亚洲欧洲日产| 欧美肉体xxxx裸体137大胆| 久久av在线| 伊人网在线播放| 日韩av中文字幕一区二区| 久久久久久黄| 粉嫩av一区二区三区四区五区 | 成人在线观看免费视频| 黄页网站一区| 高清日韩中文字幕| 视频一区日韩精品| 卡一卡二国产精品| 日韩激情av在线| 亚洲黄页一区| 日韩精品91| 精品中文字幕一区二区三区| 亚洲精品女人| 日韩精品一区第一页| 亚洲欧美一区在线| 欧美丰满日韩| 国产精品亚洲二区| 日韩精品久久理论片| 丝袜美腿亚洲色图| 亚洲激情欧美| 亚洲免费成人| 中文一区二区| 国产99亚洲| 亚洲午夜av| 影音先锋久久| 亚洲一区久久| 午夜在线一区| 亚洲深夜福利在线观看| 亚洲精品一区二区在线播放∴| 黄色亚洲在线| 日韩在线一二三区| 日韩精品亚洲专区| 国产欧美综合一区二区三区| 欧美一区影院| 欧美黄页在线免费观看| 九九久久国产| 久久在线免费| 亚洲精品极品少妇16p| 中国女人久久久| 视频国产精品| 精品国产aⅴ| 免费av一区二区三区四区| 亚洲精品888| 欧美在线观看天堂一区二区三区| 国产精品久久久久久久久久久久久久久| 国产福利一区二区三区在线播放| 久久精品国产久精国产| 日韩精品免费一区二区在线观看 | 亚洲精品极品| 国产日本久久| 亚洲永久av| 蜜桃视频免费观看一区| 国产精品九九| 亚洲二区免费| 国产伦理一区| 亚洲一级二级| 国产精品地址| 在线一区免费观看| 国产日本精品| 99riav1国产精品视频| 国产日韩三级| 亚洲一区日本| 亚洲女同av| 日本a级不卡| 欧美/亚洲一区| 国产精品一级| 亚洲一区二区动漫| 日本蜜桃在线观看视频| 日韩精品中文字幕吗一区二区| 欧洲精品一区二区三区| 国产亚洲字幕| 亚洲一区黄色| 激情综合自拍| caoporn视频在线| 国产精品美女午夜爽爽| 噜噜噜躁狠狠躁狠狠精品视频| 麻豆国产在线| 国产精久久久| 日韩国产欧美在线播放| 91精品啪在线观看国产18| 国产精品欧美三级在线观看| 亚洲视频国产| 另类av一区二区| 亚洲一区二区成人| 欧美午夜不卡| 日韩视频一区| 日韩精品一级中文字幕精品视频免费观看 | 视频一区二区中文字幕| 三级一区在线视频先锋| 粉嫩av一区二区三区四区五区 | 亚洲精品成人一区| 影视先锋久久| 久久婷婷亚洲| 久久国产亚洲| 红桃视频欧美| 中日韩男男gay无套| 免费视频久久| 亚洲精选av| 欧美伊人久久| 精品一区二区三区在线观看视频| 久久中文字幕一区二区三区| 久久精品女人| 久久视频一区| 亚洲欧美日韩精品一区二区| 日韩午夜电影| 欧美一级网址| 97精品国产| 亚洲在线成人| 欧美日韩精品一区二区三区视频 | 中文一区一区三区免费在线观 | 不卡一区2区| 亚洲欧美一级| 九九久久国产| 亚洲综合三区| 欧美91在线|欧美| 久久在线视频免费观看| 婷婷精品在线| 高清日韩中文字幕| 日韩制服丝袜av| 久久精品国产福利| 欧美羞羞视频| 亚洲人成毛片在线播放女女| 欧美一区=区三区| 最新中文字幕在线播放| 免费在线小视频| 蜜臀久久99精品久久久久宅男| 欧美日本不卡高清| 国产一区二区视频在线看| 丝瓜av网站精品一区二区| 国产精品自在| 午夜在线一区二区| 日韩福利在线观看| 国产精品久久观看| 日韩影片在线观看| 欧美国产极品| 欧美日韩视频| 理论片午夜视频在线观看| 午夜性色一区二区三区免费视频| 日韩在线中文| 精品一区二区三区四区五区| 亚洲三级在线| 亚洲欧美日韩专区| 久久精品电影| 麻豆精品视频在线观看| 亚洲综合色婷婷在线观看| 伊人网在线播放| 精品国产亚洲一区二区三区在线| 蜜臀91精品一区二区三区| 国产综合精品一区| 欧美国产一级| 欧美日韩一区二区三区四区在线观看| 五月天久久777| 欧美性感美女一区二区 | 久久香蕉精品| 91久久午夜| 香蕉精品999视频一区二区| 999国产精品999久久久久久| 亚洲天堂av影院| 日韩av免费| 蜜臀久久99精品久久一区二区| 久久久久网站| 91九色精品| 午夜精品影院| 在线综合视频|