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

首頁 > 編程 > JavaScript > 正文

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

2019-11-20 13:18:30
字體:
來源:轉載
供稿:網友

本文實例分析了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
黄色成人在线播放| 国产精品成人免费视频| 久久精品中文字幕免费mv| 久久人人爽人人爽人人片av高请| 亚洲成人黄色网址| 91亚洲国产成人久久精品网站| 国产一区二区成人| 国产激情视频一区| 日韩在线小视频| 欧美日韩ab片| 日韩免费在线视频| 久久久av网站| 欧洲中文字幕国产精品| 亚洲一区中文字幕在线观看| 久久国产精品久久久久| 久久精品电影一区二区| 欧美综合激情网| 国产精品久久久久影院日本| 久久精品一区中文字幕| 国产成人综合精品| 日韩专区在线播放| 色综合91久久精品中文字幕| 高清一区二区三区日本久| 亚洲欧洲偷拍精品| 久久精品国亚洲| 日韩欧美中文字幕在线播放| 久久久国产精品x99av| 国产精品入口日韩视频大尺度| 国产精品久久久久久中文字| 亚洲在线视频福利| 国产精品三级久久久久久电影| 日韩网站免费观看| 91美女片黄在线观| 欧美视频中文字幕在线| 一本一道久久a久久精品逆3p| 亚洲天堂av综合网| 日本成人精品在线| 欧美日本高清一区| 欧美日韩国产在线播放| 91在线视频九色| 国产精品美乳一区二区免费| 成人网在线免费观看| 欧美裸体男粗大视频在线观看| 欧美成人精品一区| 69av成年福利视频| 国产精品久久久久久久久粉嫩av| 欧美黄色片在线观看| 国产精品成人在线| 欧美wwwxxxx| 国产成人avxxxxx在线看| 欧美电影《睫毛膏》| 欧美黄色片视频| 亚洲精品按摩视频| 国产成人精品最新| 136fldh精品导航福利| 色偷偷av亚洲男人的天堂| 亚洲美女自拍视频| 在线观看日韩av| 亚洲欧美在线播放| 国产成人高清激情视频在线观看| 18性欧美xxxⅹ性满足| 欧美日韩国产成人在线| 国产精品扒开腿做爽爽爽男男| 亚洲精品suv精品一区二区| 欧美精品国产精品日韩精品| 国产日产久久高清欧美一区| 日韩中文字幕视频| 亚洲毛片在线看| 欧美性色19p| 18一19gay欧美视频网站| 亚洲xxxx妇黄裸体| 欧美日韩在线观看视频| 欧美国产日韩在线| 亚洲成成品网站| 国产精品美女在线| 欧美性极品xxxx做受| 午夜精品一区二区三区在线视| 国产三级精品网站| 欧美老女人性生活| 国产日韩综合一区二区性色av| 欧美成aaa人片免费看| 精品动漫一区二区| 亚洲精品国产品国语在线| 精品国产欧美一区二区三区成人| 国产99视频在线观看| 黄色成人av在线| 国产精品老牛影院在线观看| 成人h片在线播放免费网站| 精品一区二区三区四区在线| 欧美精品videosex牲欧美| 国产日韩综合一区二区性色av| 亚洲一区国产精品| 一区二区三区天堂av| 亚洲免费伊人电影在线观看av| 亚洲精品视频免费| 久久久中文字幕| 国产精品爱啪在线线免费观看| 日日狠狠久久偷偷四色综合免费| 国产成人鲁鲁免费视频a| 亚洲综合在线播放| 亚洲片在线资源| 国产丝袜视频一区| 欧美精品日韩三级| 91亚洲精品久久久久久久久久久久| 午夜精品一区二区三区在线播放| 亚洲人av在线影院| 国产不卡一区二区在线播放| 亚洲精品美女在线观看播放| 欧美在线视频一区二区| 欧美成人全部免费| 久久手机精品视频| 亚洲精品日韩在线| 成人福利在线观看| 青青草成人在线| 欧美孕妇毛茸茸xxxx| 亚洲999一在线观看www| 91精品国产91久久久久久不卡| 国产男女猛烈无遮挡91| 国产精品久久色| 亚洲美女又黄又爽在线观看| 国产精品第8页| 在线观看国产成人av片| 国产精品自产拍在线观| 亚洲美女av在线播放| 久久精品国产综合| 精品久久久久久久大神国产| 精品国产一区二区三区在线观看| 亚洲а∨天堂久久精品9966| 亚洲激情小视频| 亚洲午夜av电影| 亚洲美女性生活视频| 97不卡在线视频| 亚洲第一区在线观看| 97香蕉久久夜色精品国产| 国产盗摄xxxx视频xxx69| 亚洲偷熟乱区亚洲香蕉av| 日韩经典第一页| 在线观看中文字幕亚洲| 懂色aⅴ精品一区二区三区蜜月| 欧美另类在线观看| 久久久亚洲国产天美传媒修理工| 国产999在线| 最好看的2019的中文字幕视频| 亚洲国产另类 国产精品国产免费| 乱亲女秽乱长久久久| 亚洲伊人成综合成人网| 久久亚洲综合国产精品99麻豆精品福利| 国产视频久久久久| 欧美在线视频一区| 欧美激情二区三区| 成人情趣片在线观看免费| 日韩欧美国产成人| 亚洲欧美日韩第一区| 国产日韩精品在线| 欧美日韩在线视频首页| 国产精品最新在线观看| 最好看的2019的中文字幕视频| 精品少妇一区二区30p| 欧美性猛交xxxx久久久| 秋霞av国产精品一区| 欧美最猛性xxxxx亚洲精品| 亚洲成人免费网站| 欧美亚洲成人网| 久久好看免费视频|