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

首頁 > 語言 > JavaScript > 正文

javascript原型鏈繼承用法實例分析

2024-05-06 16:15:24
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了javascript原型鏈繼承用法,實例分析了javascript原型鏈繼承中的技巧與相關注意事項,非常具有實用價值,需要的朋友可以參考下
 

本文實例分析了javascript原型鏈繼承的用法。分享給大家供大家參考。具體分析如下:

 

復制代碼代碼如下:
function Shape(){  
 this.name = 'shape';  
 this.toString = function(){  
  return this.name;  
 }  
}  
  
function TwoDShape(){  
 this.name = '2D shape';  
}  
function Triangle(side,height){  
 this.name = 'Triangle';  
 this.side = side;  
 this.height = height;  
 this.getArea = function(){  
  return this.side*this.height/2;  
 };  
}  
  
/* inheritance */  
TwoDShape.prototype = new Shape();  
Triangle.prototype = new TwoDShape();
 

 

當我們對對象的prototype屬性進行完全重寫時,有時候會對對象constructor屬性產生一定的負面影響。
所以,在我們完成相關的繼承關系設定后,對這些對象的const屬性進行相應的重置是一個非常好的習慣。如下所示:

 

復制代碼代碼如下:
TwoDShape.prototype.constructor = TwoDShape;  
Triangle.prototype.constructor = Triangle;

 

改寫:

復制代碼代碼如下:
function Shape(){}  
  
Shape.prototype.name = 'shape';  
Shape.prototype.toString = function(){  
 return this.name;  
}  
  
function TwoDShape(){}  
  
TwoDShape.prototype = new Shape();  
TwoDShape.prototype.constructor = TwoDShape;  
  
TwoDShape.prototype.name = '2d shape';  
  
function Triangle(side,height){  
 this.side = side;  
 this.height = height;  
}  
  
Triangle.prototype = new TwoDShape;  
Triangle.prototype.constructor = Triangle;  
  
Triangle.prototype.name = 'Triangle';  
Triangle.prototype.getArea = function(){  
 return this.side*this.height/2;  
}

 

再改寫(引用傳遞而不是值傳遞):

復制代碼代碼如下:
function Shape(){}  
  
Shape.prototype.name = 'shape';  
Shape.prototype.toString = function(){  
 return this.name;  
}  
  
function TwoDShape(){}  
  
TwoDShape.prototype = Shape.prototype;  
TwoDShape.prototype.constructor = TwoDShape;  
  
TwoDShape.prototype.name = '2d shape';  
  
function Triangle(side,height){  
 this.side = side;  
 this.height = height;  
}  
  
Triangle.prototype = TwoDShape.prototype;  
Triangle.prototype.constructor = Triangle;  
  
Triangle.prototype.name = 'Triangle';  
Triangle.prototype.getArea = function(){  
 return this.side*this.height/2;  
}

 

雖然提高了效率,但是這樣的方法有個副作用,因為是引用傳遞,而不是值傳遞,所以“父對象”中的name值受到了影響。
子對象和父對象指向的是同一個對象。所以一旦子對象對其原型進行修改,父對象也會隨即被改變。

再再改寫(使用臨時構造器):

復制代碼代碼如下:
function Shape(){}  
Shape.prototype.name = 'shape';  
Shape.prototype.toString = function(){  
 return this.name;  
}  
function TwoDShape(){}  
var F = function(){}  
F.prototype = Shape.prototype;  
TwoDShape.prototype = new F();  
TwoDShape.prototype.constructor = TwoDShape;  
TwoDShape.prototype.name = '2d shape';  
function Triangle(side,height){  
 this.side = side;  
 this.height = height;  
}  
F.prototype = TwoDShape.prototype;  
Triangle.prototype = new F();  
Triangle.prototype.constructor = Triangle;  
Triangle.prototype.name = 'Triangle';  
Triangle.prototype.getArea = function(){  
 return this.side*this.height/2;  
}

 

雖然提高了效率,但是這樣的方法有個副作用,因為是引用傳遞,而不是值傳遞,所以“父對象”中的name值受到了影響。

子對象和父對象指向的是同一個對象。所以一旦子對象對齊原型進行修改,父對象也會隨即被改變。

希望本文所述對大家的javascript程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲视频电影图片偷拍一区| 国产精品麻豆va在线播放| 久久综合久久八八| 91精品国产综合久久香蕉922| 日韩经典一区二区三区| 91免费的视频在线播放| 国产精品美女无圣光视频| 欧美精品亚州精品| 精品伊人久久97| 一夜七次郎国产精品亚洲| 在线成人免费网站| 亚洲精品白浆高清久久久久久| 亚洲午夜性刺激影院| 怡红院精品视频| 欧美激情三级免费| 庆余年2免费日韩剧观看大牛| 久久久爽爽爽美女图片| 欧美日韩国产999| 国产精品美女999| 亚洲精品资源在线| 亚洲精品美女在线观看| 日韩欧美在线播放| 亚洲欧美精品在线| 久久天天躁狠狠躁夜夜躁2014| 国产精品久久激情| 亚洲精品成a人在线观看| 国产欧美日韩91| 日韩在线视频导航| 国产精品黄页免费高清在线观看| 日本欧美黄网站| 热久久视久久精品18亚洲精品| 国产日韩欧美电影在线观看| 草民午夜欧美限制a级福利片| 成人欧美一区二区三区黑人| 欧美老女人www| 亚洲成**性毛茸茸| 欧美一区二区三区免费观看| 日韩在线视频导航| 欧美老肥婆性猛交视频| 国产视频综合在线| 欧美性猛交99久久久久99按摩| 亚洲第一福利网| 97人洗澡人人免费公开视频碰碰碰| 久久精品国产亚洲一区二区| 久久久综合av| 久久影院资源网| 精品久久久久久亚洲精品| 久久深夜福利免费观看| 91精品国产精品| 亚洲欧洲成视频免费观看| 中文字幕综合在线| 亚洲免费一级电影| 欧美黄网免费在线观看| 91亚洲精品视频| 中文字幕欧美精品在线| 亚洲高清久久久久久| 亚洲综合色激情五月| 精品露脸国产偷人在视频| 久久久亚洲精选| 国产亚洲人成网站在线观看| 精品中文字幕视频| 欧美亚洲一级片| 亚洲一区二区自拍| 国产精品视频一区二区三区四| 国产精品欧美激情| 亚洲男人的天堂在线| 成人妇女淫片aaaa视频| 少妇高潮 亚洲精品| 日韩成人在线播放| 久久免费国产视频| 久久97久久97精品免视看| 激情成人在线视频| 国产成人精品网站| 国产精品www| 亚洲新中文字幕| 欧美成人全部免费| 国产精品普通话| 亚洲国产成人久久| 亚洲一区二区精品| 亚洲国产精品99久久| 日韩av在线免费看| 久久精品国产v日韩v亚洲| 国产精品69精品一区二区三区| 久久精品亚洲国产| 91精品国产综合久久久久久久久| 日韩高清中文字幕| 日本欧美一二三区| 亚洲精品美女久久久久| 91九色国产在线| 亚洲国产精品国自产拍av秋霞| 国产精品久久不能| 色中色综合影院手机版在线观看| 国产精品对白刺激| 亚洲第一视频网站| 亚洲国产精品va在线看黑人动漫| 国产成人+综合亚洲+天堂| 久久影视电视剧免费网站清宫辞电视| 91久久久久久久| 91地址最新发布| 亚洲欧美中文日韩v在线观看| 国产一区二区三区视频| 91影院在线免费观看视频| 欧美做受高潮1| 国产精品v片在线观看不卡| 亚洲最新av网址| 欧美性猛交xxxx乱大交极品| 欧美激情亚洲精品| 亚洲影视九九影院在线观看| 国产精品欧美激情在线播放| 国产成人精品久久亚洲高清不卡| 久久久久久久久久久av| 国产成人精品一区二区| 欧美视频在线观看 亚洲欧| 国产一区二区色| 欧美电影《睫毛膏》| 日韩中文字幕在线免费观看| 黑人巨大精品欧美一区二区一视频| 欧美日韩中文字幕日韩欧美| 91亚洲国产成人久久精品网站| 亚洲亚裔videos黑人hd| 欧美大肥婆大肥bbbbb| 两个人的视频www国产精品| 精品日韩美女的视频高清| 久久精品99久久香蕉国产色戒| 精品久久久一区二区| 国产亚洲a∨片在线观看| 国产丝袜一区视频在线观看| 精品视频www| 亚洲欧美一区二区精品久久久| 欧洲永久精品大片ww免费漫画| 久久久免费精品视频| 91在线免费看网站| 亚洲电影中文字幕| 国产成人精品a视频一区www| 国模精品视频一区二区三区| 97国产成人精品视频| 久久久久久久爱| 欧美中文在线字幕| 国产精品亚洲片夜色在线| 久久久www成人免费精品张筱雨| 国产精品精品国产| 久久精品青青大伊人av| 精品电影在线观看| 午夜精品一区二区三区av| 亚洲欧美日韩中文视频| 欧美精品999| 亚洲精品xxxx| 久久久亚洲精选| 色婷婷综合久久久久| 青青青国产精品一区二区| 国内外成人免费激情在线视频| 少妇高潮久久久久久潘金莲| 夜夜嗨av色综合久久久综合网| 久久综合伊人77777| xvideos国产精品| 中文字幕亚洲一区二区三区五十路| 成人免费高清完整版在线观看| 国产精品老女人精品视频| 亚洲人成网7777777国产| 精品福利在线看| 日韩有码在线电影| 久久久久久久久久久91| 国产91精品高潮白浆喷水| 久久精品国产96久久久香蕉|