摘要:原型鏈在瀏覽器內(nèi)部有一個(gè)對(duì)象,它本身有用以下圖這樣的屬性部分在創(chuàng)建一個(gè)對(duì)象的時(shí)候在執(zhí)行這個(gè)代碼的時(shí)候,瀏覽器會(huì)加上一句代碼在調(diào)用方法時(shí),在直接屬性里找不到這個(gè)方法,就會(huì)順著其屬性即找這個(gè)方法在中,數(shù)組也是一個(gè)對(duì)象,所以數(shù)組也能調(diào)用的方法,那
原型鏈
在瀏覽器內(nèi)部有一個(gè)window對(duì)象,它本身有用以下圖這樣的屬性(部分)
在創(chuàng)建一個(gè)對(duì)象的時(shí)候
var obj = {};
在執(zhí)行這個(gè)代碼的時(shí)候,瀏覽器會(huì)加上一句代碼
var obj = { obj.__proto__ = window.Object.prototype; };
在obj調(diào)用toString()方法時(shí),在直接屬性里找不到這個(gè)方法,就會(huì)順著其屬性__proto__(即window.Object.prototype)找這個(gè)方法
在JavaScript中,數(shù)組也是一個(gè)對(duì)象,所以數(shù)組也能調(diào)用window.Object.prototype的方法,那么究竟是怎么實(shí)現(xiàn)這個(gè)關(guān)系呢?
實(shí)現(xiàn)方法:window.Array.prototype也有一個(gè)原型(window.Array.prototype.__proto__),這個(gè)原型指向的是window.Object.prototype,所以就實(shí)現(xiàn)了數(shù)組可以調(diào)用window.Object.prototype的方法。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/104027.html
摘要:有個(gè)例外他就是??醋髠?cè)對(duì)象的原型鏈上是否有第一步得到。將各內(nèi)置引用類型的指向。用實(shí)例化出,,以及的行為并掛載。實(shí)例化內(nèi)置對(duì)象以及至此,所有內(nèi)置類型構(gòu)建完成。最后的最后,你還對(duì)是現(xiàn)有還是現(xiàn)有有想法了嗎以上均為個(gè)人查閱及實(shí)踐總結(jié)的觀點(diǎn)。 來(lái)個(gè)摸底測(cè)試,說(shuō)出以下每個(gè)表達(dá)式的結(jié)果 function F(){}; var o = {}; typeof F; typeof o; typeof F...
摘要:了解中原型以及原型鏈只需要記住以下點(diǎn)即可對(duì)象都有屬性,指向構(gòu)造函數(shù)的構(gòu)造函數(shù)函數(shù)都有屬性,指向構(gòu)造函數(shù)的原型對(duì)象的內(nèi)置構(gòu)造函數(shù)可知所有的構(gòu)造函數(shù)都繼承于甚至包括根構(gòu)造器及自身。 了解JavaScript中原型以及原型鏈只需要記住以下2點(diǎn)即可 對(duì)象都有__proto__屬性,指向構(gòu)造函數(shù)的prototype 構(gòu)造函數(shù)函數(shù)都有prototype屬性,指向構(gòu)造函數(shù)的原型 1、對(duì)象的__p...
摘要:因此,請(qǐng)慎重重寫原型繼承說(shuō)到就不得說(shuō)繼承,我們通過(guò)給上添加屬性和方法,就能使該構(gòu)造函數(shù)所有的實(shí)例對(duì)象擁有屬性和方法。 本人博客:【www.xiabingbao.com】 在本文中,我們講解prototype的內(nèi)容主要由:什么是prototype,prototype與函數(shù)之間的關(guān)系,prototype與實(shí)例對(duì)象之間的關(guān)系,使用proto實(shí)現(xiàn)一個(gè)簡(jiǎn)單的繼承。 1. prototype的簡(jiǎn)要...
摘要:所以繼承了對(duì)象的所有方法,當(dāng)你用時(shí),會(huì)先查一下它的構(gòu)造函數(shù)的原型對(duì)象有沒(méi)有有方法,沒(méi)查到的話繼續(xù)查一下的原型對(duì)象有沒(méi)有這個(gè)方法。 普通函數(shù)與構(gòu)造函數(shù)的區(qū)別 在命名規(guī)則上,構(gòu)造函數(shù)一般是首字母大寫,普通函數(shù)遵照小駝峰式命名法。 在函數(shù)調(diào)用的時(shí)候: function fn() { } 構(gòu)造函數(shù):1. new fn( ) 2 .構(gòu)造函數(shù)內(nèi)部會(huì)...
摘要:一旦原型對(duì)象被賦予屬性和方法那么由相應(yīng)的構(gòu)造函數(shù)創(chuàng)建的實(shí)例會(huì)繼承上的屬性和方法為什么只有函數(shù)才有屬性規(guī)范就這么定的。其它的構(gòu)造器的都是一個(gè)對(duì)象。 哪些對(duì)象有原型?所有的對(duì)象在默認(rèn)情況下都有一個(gè)原型,因?yàn)樵捅旧硪彩菍?duì)象,所以每個(gè)原型自身又有一個(gè)原型(只有一種例外,默認(rèn)的對(duì)象原型在原型鏈的頂端) prototype屬性prototype是每個(gè)函數(shù)對(duì)象都具有的屬性,被稱為原型對(duì)象,而__p...
摘要:動(dòng)物還有一個(gè)貓對(duì)象的構(gòu)造函數(shù)。這顯然會(huì)導(dǎo)致繼承鏈的紊亂明明是用構(gòu)造函數(shù)生成的,因此我們必須手動(dòng)糾正,將對(duì)象的值改為。這是很重要的一點(diǎn),請(qǐng)務(wù)必注意如果替換了對(duì)象,下一步必然是為新的對(duì)象加上屬性,并將這個(gè)屬性指回原來(lái)的構(gòu)造函數(shù)。 原文鏈接 現(xiàn)在有一個(gè)動(dòng)物對(duì)象的構(gòu)造函數(shù)。 function Animal() { this.species = 動(dòng)物; } 還有一個(gè)貓對(duì)象的構(gòu)造函數(shù)。 fun...
閱讀 1378·2021-11-24 10:24
閱讀 4417·2021-11-22 15:29
閱讀 1151·2019-08-30 15:53
閱讀 2861·2019-08-30 10:54
閱讀 2051·2019-08-29 17:26
閱讀 1378·2019-08-29 17:08
閱讀 672·2019-08-28 17:55
閱讀 1670·2019-08-26 14:01