JS原型鏈

前一篇章講了原型鏈繼承基括,那原型鏈怎么理解呢,是時候來講一下了:
我們查找一個實例對象的屬性或方法匠璧,首先會在自己的實例屬性或方法中查找,找到這個屬性或方法酿雪,那么這屬于私有屬性或方法指黎;如果沒有則根據(jù)指針鏈(__proto__)到當前實例所屬類型的原型對象上找醋安,找到這個屬性或方法,那么這個屬性或方法屬于公有屬性或方法柠辞,若還沒有叭首,則繼續(xù)通過指針鏈(__proto__)往上找放棒,一直找到Object.prototype上還沒有則說明這個對象是沒有原型對象的

function Fn(){
        this.x = 100;
    }
    Fn.prototype.showX = function () {
        console.log(this.x)
    }
    var fn = new Fn();
    console.log(fn)

原型鏈在控制臺展示這樣的:

console.log(fn)原型鏈截圖.png

下面是一張原型鏈的草圖:
原型鏈.jpg

所謂原型鏈只得就是圖中__proto__這一條指針鏈厢破,而原型鏈的頂端就是Object.__proto__
每個對象都有__proto__屬性笆焰,Object對象除外嚷掠;
每個構(gòu)造函數(shù)都有一個名為prototype的原型對象不皆,這個原型對象同樣帶有__proto__屬性霹娄;
每個對象的__proto__屬性都指向自身構(gòu)造函數(shù)的prototype原型對象。
isPrototypeOf()可以用來判斷對象object1是否存在于對象object2的原型鏈中枕磁,是則返回true透典,不是返回false

    function Fn(){
        this.x = 100;
    }
    Fn.prototype.showX = function () {
        console.log(this.x)
    }
    var fn = new Fn();
    console.log(Fn.prototype.isPrototypeOf(fn));    //true

如果 object2 的原型鏈中包含object1,那么 isPrototypeOf 方法返回 true凑队。
如果 object2 不是一個對象或者 object1 沒有出現(xiàn)在 object2 中的原型鏈中盟劫,isPrototypeOf 方法將返回false霍狰。
需要注意的指向是
Function.prototype的proto指向其構(gòu)造函數(shù)Object的prototype康震;
Object.prototype的prototype指向null(盡頭)

console.log(Function.prototype.isPrototypeOf(Object));      //true
console.log(Object.prototype.isPrototypeOf(Function));      //true
console.log(Object.prototype.__proto__);      //null
console.log(Function.prototype.__proto__) 

附上一張完整的原型鏈圖:


完整原型鏈圖.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市橘忱,隨后出現(xiàn)的幾起案子鹦付,更是在濱河造成了極大的恐慌郎嫁,老刑警劉巖泽铛,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異瓢喉,居然都是意外死亡栓票,警方通過查閱死者的電腦和手機走贪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門遂跟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人缩搅,你說我怎么就攤上這事≈们” “怎么了瘟栖?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長寓涨。 經(jīng)常有香客問我戒良,道長,這世上最難降的妖魔是什么沃呢? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮黄锤,結(jié)果婚禮上鸵熟,老公的妹妹穿的比我還像新娘流强。我一直安慰自己队腐,他們只是感情好柴淘,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著肺稀,像睡著了一般夕吻。 火紅的嫁衣襯著肌膚如雪梭冠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天,我揣著相機與錄音默勾,去河邊找鬼。 笑死环疼,一個胖子當著我的面吹牛炫隶,可吹牛的內(nèi)容都是我干的伪阶。 我是一名探鬼主播斟湃,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼哄酝!你這毒婦竟也來了陶衅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎门烂,沒想到半個月后屯远,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體慨丐,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了伶唯。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乳幸。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖希柿,靈堂內(nèi)的尸體忽然破棺而出曾撤,到底是詐尸還是另有隱情挤悉,我是刑警寧澤装悲,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布阅嘶,位于F島的核電站奠涌,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏极祸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一蒜田、第九天 我趴在偏房一處隱蔽的房頂上張望冲粤。 院中可真熱鬧,春花似錦窝撵、人聲如沸碌奉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽碉考。三九已至侯谁,卻和暖如春墙贱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背魁衙。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留纵隔,地道東北人碰煌。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓棚蓄,卻偏偏與公主長得像梭依,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子糊探,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345