日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

js 中的五种继承方法

發布時間:2025/5/22 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js 中的五种继承方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

正式發布的ES6中已經封裝實現了其他OO語言中的繼承形式,Class Extends,這里主要記錄js的原型繼承和借用構造函數繼承

一、原型鏈繼承

function Super(){this.name="小明"; } Super.prototype.sayName = function(){alert(this.name) }; function Sub(){}Sub.prototype = new Super(); var instance = new Sub(); instance.sayName();//小明

原型鏈繼承的問題

//當超類中包含引用類型屬性值時,其中一個子類的多個實例中,只要其中一個實例引用屬性只發生修改一個修改,其他實例的引用類型屬性值也會立即發生改變 //原因是超類的屬性變成子類的原型屬性 function Super(){ this.name="小明";this.friends = ['小紅','小強']; } Super.prototype.sayName = function(){alert(this.name) }; function Sub(){}Sub.prototype = new Super(); var instance1 = new Sub(); var instance2 = new Sub(); instance1.friends.push('張三'); console.log(instance1.friends);//["小紅", "小強", "張三"] console.log(instance2.friends);//["小紅", "小強", "張三"]

二、借用構造函數繼承

function Super(){ this.name="小明";this.friends = ['小紅','小強']; } Super.prototype.sayName = function(){alert(this.name) }; function Sub(){Super.call(this); }var instance1 = new Sub(); var instance2 = new Sub(); instance1.friends.push('張三'); console.log(instance1.friends);//["小紅", "小強", "張三"] console.log(instance2.friends);//["小紅", "小強"]

借用構造函數的問題

單獨使用借用構造函數,沒辦法繼承超類中的原型屬性和方法

三、組合式繼承(原型繼承+借用構造函數繼承)

組合式繼承也是實際開發中最常用的繼承方式

function Super(){ this.name="小明";this.friends = ['小紅','小強']; } Super.prototype.sayName = function(){alert(this.name) }; function Sub(){Super.call(this); }Sub.prototype = new Super(); var instance1 = new Sub(); var instance2 = new Sub(); instance1.friends.push('張三'); console.log(instance1.friends);//["小紅", "小強", "張三"] console.log(instance2.friends);//["小紅", "小強"] instance1.sayName();//小明 instance2.sayName();//小明

組合式繼承的問題

//組合式繼承中,超類的構造函數將被調用兩次 function Super(){ this.name="小明";this.friends = ['小紅','小強']; } Super.prototype.sayName = function(){alert(this.name) }; function Sub(){Super.call(this);//第二次調用 }Sub.prototype = new Super();//第一次調用 var instance = new Sub();

四、寄生式繼承

//在主要考慮對象而不是自己定義類型和構造函數的情況下,寄生式繼承是一種有用的模式,但無法做到函數的復用 function createAnother(original){var clone = Object(original);//創建一個新對象,original的副本clone.sayName = function(){ //對象的增強,添加額外的方法alert('hi');}return clone; } var person = {name:'小明',friends:['小紅','小強'] } var person1 = createAnother(person); var person2 = createAnother(person); person1.friends.push('張三'); console.log(person.friends);//["小紅", "小強", "張三"] console.log(person1.friends);//["小紅", "小強", "張三"] console.log(person2.friends);//["小紅", "小強", "張三"]

寄生組合式繼承

//寄生組合式繼承解決了組合式繼承調用兩次超類構造函數的問題 function inheritPrototype(sub,superr){ var prototype = Object.create(superr.prototype);//ES5中創建對象副本的方法prototype.constructor = superr; //彌補重寫原型失去的默認constructor屬性sub.prototype = prototype; } function Super(name){this.name = name;this.friends = ['小紅','小強']; } Super.prototype.sayName = function(){alert(this.name); } function Sub(name){Super.call(this,name); } inheritPrototype(Sub,Super); var person1 = new Sub('小明'); var person2 = new Sub('小華'); person1.friends.push('張三'); console.log(person1.friends);//["小紅", "小強", "張三"] console.log(person2.friends);//["小紅", "小強"] console.log(person1.sayName());//小明 console.log(person2.sayName());//小華

轉載于:https://www.cnblogs.com/tuboshu/p/10752356.html

總結

以上是生活随笔為你收集整理的js 中的五种继承方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线资源站 | 日韩电影在线观看一区二区 | 国产xxx在线观看 | 欧美人与性动交α欧美精品 | 97人人模人人爽人人少妇 | 天天综合网久久综合网 | 波多野结衣一区二区三区高清av | 韩产日产国产欧产 | 精品视频在线免费看 | 福利在线网站 | 精品人妻无码一区二区三区 | 国产视频一区在线播放 | 色啪网站 | 夜夜骚av一区二区三区 | 国产在线视频网 | 污污的视频在线观看 | 插插插操操操 | 一区二区三区四区国产 | 国产中文字幕视频 | 少女国产免费观看 | 色超碰 | 国产欧美日韩一区二区三区 | 国偷自产av一区二区三区麻豆 | 韩日av在线播放 | 亚洲乱码少妇 | 久草免费在线视频观看 | 超碰人人干人人 | 被扒开腿一边憋尿一边惩罚 | 日本一区二区三区四区在线观看 | 黄色一级大片在线免费看国产一 | 青青操网站 | 中文字幕狠狠干 | 国产免费内射又粗又爽密桃视频 | 国产成人网 | 女人喂男人奶水做爰视频 | 欧美涩色 | 一级二级三级黄色片 | 自拍偷拍精品视频 | 日韩一区二区三区在线看 | 狠狠躁日日躁夜夜躁 | av在线亚洲天堂 | 性色av无码久久一区二区三区 | 日本黄色的视频 | 日韩视频免费在线观看 | 国产成人精品一区二区三区四区 | 日韩乱码人妻无码系列中文字幕 | 嫩草www| 无码人妻aⅴ一区二区三区69岛 | 在线观看成人网 | 前任攻略在线观看免费完整版 | 中文字幕日韩亚洲 | 亚洲欧美另类在线观看 | 亚洲男人天堂2019 | 五月天综合婷婷 | a√在线| 亚洲一区二区三区四区五区午夜 | 五月婷婷丁香综合 | 亚洲第一区av | av片子在线观看 | 日韩午夜视频在线观看 | 真实人妻互换毛片视频 | 日干夜操| 免费亚洲一区二区 | 日韩天堂一区 | 六月婷婷色 | 长篇乱肉合集乱500小说日本 | 精品久久久久久久久久久久久久久久久 | 中文字幕伦理 | 三级视频网站在线观看 | 椎名由奈av一区二区三区 | 亚洲怡春院 | 欧美午夜一区二区三区 | 中文字幕第十二页 | a天堂中文字幕 | 一卡二卡在线视频 | 麻豆成人在线观看 | gav成人 | 越南少妇做受xxx片 亚洲av综合色区无码一二三区 | 日韩一区二区三区在线观看视频 | 国产精品午夜久久 | 九九热精品免费视频 | 中国少妇做爰全过程毛片 | 国产伦精品一区二区三区四区视频 | 少妇高潮一区二区三区四区 | 欧美一级黄色片视频 | 男生操女生免费网站 | 少妇的性事hd | 日本三级免费网站 | 亚洲国产精品欧美久久 | 蜜桃av一区二区三区 | 中文天堂在线视频 | 国产成人97精品免费看片 | 精品久久亚洲 | 欧美日韩一区二区区别是什么 | 国产精品第七页 | 久久99精品国产麻豆婷婷 | www.四虎精品 | 二色av | 性高跟鞋xxxxhd人妖 |