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

首頁 > 編程 > JavaScript > 正文

JavaScript原型鏈示例分享

2019-11-20 21:11:56
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

<mce:script type="text/javascript"><!--
/*
   每個對象實例都有個屬性成員用于指向到它的instanceof 對象(暫稱為父對象)的原型(prototype)
   我們把這種層層指向父原型的關系稱為[原型鏈 prototype chian]
   原型也具有父原型,因為它往往也是一個對象實例,除非我們人為地去改變它
   在JavaScript中,"一切都是對象,函數是第一型。"
   Function和Object都是函數的實例。
   Function的父原型指向到Function的原型,Function.prototype的父原型是Object的原型
   Object的父原型也指向到Function的原型,Object.prototype是所有父原型的頂層
   在spiderMonkey引擎中,父原型可以通過 __proto__ 進行訪問
*/
Function.prototype.hi = function(){alert('hi Function');}
Object.prototype.hi = function(){alert('hi Object');}
var a = function(){
    this.txt = "a";
}
a.prototype = {
    say:function(){alert('a');}
}
alert(a instanceof Function);//a是Function的實例;
alert(a.__proto__ === Function.prototype);//a的父原型指向到Function的原型;
alert(Function instanceof Object);//Function是Object的實例;
alert(Function.__proto__ === Function.prototype);//Function的父原型指向到Function的原型;
alert(Function.prototype.__proto__ === Object.prototype);//Function的原型的父原型指向到Object的原型
alert(Object.__proto__ === Function.prototype);//Object的父原型指向到Function的原型;
alert(Object.prototype.__proto__);//Object的原型是所有父原型的頂端,它不再具有父原型;

alert(a.prototype instanceof Object);//a的原型也是一個對象
alert(a.prototype.__proto__ === Object.prototype);//a的原型的父原型指向Object的原型

var A = function(){};
A.prototype = new a();
A.prototype.say = function(){
    alert('A');
}
alert(A instanceof Function);//A是Function的實例
alert(A.__proto__ === Function.prototype);//A的父原型指向到Function的原型
alert(A.prototype instanceof a);//A的原型是a的實例
alert(A.prototype.__proto__ === a.prototype);//A的原型的父原型指向到a的原型

var iA = new A();//iA是A的實例,iA.__proto__ === A.prototype
var iB = new a();//iB是a的實例,iB.__proto__ === a.prototype
iA.hi();
/*
iA本身沒有hi方法(構造中沒有,自己也沒有定義過),
于是找iA.__proto__即A.prototype,也沒有找到,
于是再找A.prototype.__proto__即a.prototype,仍然沒有發現,
繼續查找a.prototype.__proto__即Object.prototype,哇,發現了hi,于是調用它,停止查找
輸出:hi Object
*/
iB.hi();
/*
iB本身沒有hi方法(構造中沒有,自己也沒有定義過),
于是找iB.__proto__即a.prototype,仍然沒有發現,
繼續查找a.prototype.__proto__即Object.prototype,哇,發現了hi,于是調用它,停止查找
輸出:hi Object
*/
a.hi();
/*
a本身沒有hi方法(構造中沒有,自己也沒有定義過),
于是找a.__proto__既Function.prototype,哇,發現了hi,于是調用它,停止查找
輸出:hi Function
*/
iA.say();
/*
iA本身沒有say方法(構造中沒有,自己也沒有定義過),
于是找iA.__proto__即A.prototype,哇,發現了say,于是調用它,停止查找
所以,這里調用的是A.prototype.say
輸出:A
*/
iB.say();
/*
iB本身沒有say方法(構造中沒有,自己也沒有定義過),
于是找iB.__proto__即a.prototype,哇,發現了say,于是調用它,停止查找
所以,這里調用的是a.prototype.say
輸出:a
*/
iA.bad();
/*
iA本身沒有bad方法(構造中沒有,自己也沒有定義過),
于是找iA.__proto__即A.prototype,也沒有找到,
于是再找A.prototype.__proto__即a.prototype,仍然沒有發現,
繼續查找a.prototype.__proto__即Object.prototype,終于是找不到了,停止查找
返回錯誤,iA.bad不是一個function
*/
// --></mce:script>

</script>

感謝simon提出的修正意見!所有實例在查找屬性方法時不會去查找自己的prototype(實例的prototype不在原型鏈內,只能作為一個屬性)!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品美女www| 欧美在线观看一区二区三区| 亚洲综合色av| 97香蕉久久超级碰碰高清版| 亚洲另类激情图| 欧美日韩亚洲网| 久久五月天色综合| 欧美成人激情视频免费观看| 久久久久久国产精品| 欧美资源在线观看| 亚洲国产99精品国自产| 69久久夜色精品国产69| 色综合男人天堂| 亚洲精品自拍偷拍| 欧美做爰性生交视频| 亚洲自拍欧美另类| 久久99国产综合精品女同| 国产成人精品在线视频| 日韩亚洲第一页| 亚洲精品在线视频| 国产精品视频资源| 亚洲美腿欧美激情另类| 国产精品爽爽ⅴa在线观看| 欧美性猛交xxxx久久久| 欧美成人激情视频免费观看| 亚洲激情中文字幕| 日韩欧美高清在线视频| 国产精品无av码在线观看| 亚洲女人天堂视频| 色诱女教师一区二区三区| 欧美激情欧美激情| 国产一区二区欧美日韩| 69**夜色精品国产69乱| 国产视频精品自拍| 亚洲最大福利视频网站| 在线视频一区二区| 国产成人精品日本亚洲专区61| 日韩黄在线观看| 国产成人中文字幕| 久久亚洲成人精品| 91在线免费看网站| 在线观看欧美www| 91情侣偷在线精品国产| 久久国产精彩视频| 成人乱人伦精品视频在线观看| 尤物99国产成人精品视频| 久久精品这里热有精品| 欧美成人性色生活仑片| 国产精品久久二区| 欧美乱人伦中文字幕在线| 日韩在线观看视频免费| 久久久久久久久91| 精品久久久久久久大神国产| 国产欧美在线视频| 久久99精品久久久久久噜噜| 亚洲已满18点击进入在线看片| 亚洲xxx大片| 欧美性猛交xxxx免费看| 日韩av成人在线| 成人欧美一区二区三区在线湿哒哒| 另类视频在线观看| 亚洲男人天堂九九视频| 日本不卡免费高清视频| 国产日本欧美一区| 国产国语videosex另类| 欧美野外猛男的大粗鳮| 黑人精品xxx一区一二区| 久久精品久久精品亚洲人| 欧美大片第1页| 69影院欧美专区视频| 青青草成人在线| 欧美高清自拍一区| 国产精品一二三视频| 日韩免费观看网站| 国产成人精品日本亚洲专区61| 国产在线视频2019最新视频| 久久频这里精品99香蕉| 国产97在线观看| 91久久久久久国产精品| 91在线精品视频| 亚洲精品福利在线观看| 日韩精品免费观看| 国产亚洲欧洲在线| 亚洲人成在线播放| 亚洲第一区第一页| 亚洲国产精品一区二区三区| 中文字幕日韩av电影| 色综合色综合久久综合频道88| 成人午夜激情网| 欧美一级黑人aaaaaaa做受| 久久久久久91香蕉国产| 懂色av影视一区二区三区| 成人网在线免费观看| 亚洲第一天堂无码专区| 亚洲天堂男人天堂女人天堂| 国产精品96久久久久久又黄又硬| 亚洲第一免费网站| 国产成人亚洲综合91| 538国产精品一区二区免费视频| 精品女厕一区二区三区| 欧美另类老女人| 国产欧美一区二区三区在线看| 日韩av网站电影| 亚洲经典中文字幕| 日韩欧美中文字幕在线观看| 国产在线久久久| 久久99视频免费| 国产免费一区二区三区在线观看| 日韩欧美在线观看| 亚洲天堂网在线观看| 91精品国产99久久久久久| 成人午夜在线影院| 欧美一级黄色网| 91香蕉嫩草影院入口| 久久精视频免费在线久久完整在线看| 国产精品旅馆在线| 亚洲第一区中文字幕| 91精品国产高清| 国外视频精品毛片| 日韩在线精品一区| 亚洲欧美精品在线| 8x海外华人永久免费日韩内陆视频| 欧美一级电影免费在线观看| 国产偷国产偷亚洲清高网站| 国产精品扒开腿做爽爽爽视频| 久久国产精彩视频| 欧美韩国理论所午夜片917电影| 俺去了亚洲欧美日韩| 久久久久久午夜| 国产在线观看一区二区三区| 亚洲激情久久久| 中文字幕久久久av一区| 大量国产精品视频| 久久久这里只有精品视频| 精品亚洲一区二区三区在线观看| 免费av在线一区| 欧美成人黑人xx视频免费观看| 国产xxx69麻豆国语对白| 欧美在线观看网址综合| 欧美日韩国产精品一区二区不卡中文| 中文日韩在线观看| 久久精品99国产精品酒店日本| 欧美精品videosex性欧美| 欧美一级大片在线免费观看| 97免费在线视频| 国产精品久久久久久久7电影| 亚洲人成人99网站| 亚洲国产美女精品久久久久∴| 国产精品三级久久久久久电影| 亚洲欧美日韩国产精品| 国产精品日日摸夜夜添夜夜av| 精品国产欧美一区二区五十路| 国产大片精品免费永久看nba| 欧美精品在线观看| 日韩中文在线视频| 日韩av在线最新| 国产成人精品免高潮在线观看| 久久精品这里热有精品| 国产精品白嫩初高中害羞小美女| 91精品国产91久久久| 91视频8mav| 成人黄色在线播放| 668精品在线视频| 亚洲欧美另类国产|