原型與原型鏈

些全局變量分為兩種:

一種是 ECMAScript 規(guī)定的,比如:global.parseInt球拦,global.parseFloat靠闭,global.Number

一種是瀏覽器自己加的屬性,比如:window.alert坎炼,window.prompt愧膀,window.comfirm

所有 API 都可以在 MDN 里找到詳細(xì)的資料。這里我主要說的是第一種谣光。

每當(dāng)我們建一個新的對象時檩淋,我們似乎總是能用一大堆原先并沒有定義的方法,這是為啥呢抢肛?因為有原型這個神奇的東西存在狼钮,每當(dāng)我們申明的時候,他就會自動建立一個proto屬性與所對應(yīng)的方法的原型相連捡絮,這樣我們就共用了原型的方法

簡單的來說,我們要搞清楚原型鏈的架構(gòu)莲镣,首先就要明白js的內(nèi)置方法如何被構(gòu)建起來的福稳,由于js的垃圾回收機(jī)制,當(dāng)一個對象未被引用的時候瑞侮,就會被視作垃圾的圆,于是就會被清除鼓拧,但是我們發(fā)現(xiàn)Number,String這些方法都沒有被清除越妈,這就讓人嘖嘖稱奇了季俩。這其實就是在每個對象內(nèi)部加上了一個prototype屬性,叫做該對象的原型屬性梅掠,又給每個對象加上proto,叫做原型鏈指針酌住,他指向本對象的原型對象,用這種方法使得每個對象相互連接阎抒。每當(dāng)我們聲明一個對象時酪我,它就會去找到他所對應(yīng)的方法的原型,然后予以連接且叁,這也就能在建立一個對象以后都哭,他能擁有許多你本身并沒有定義的方法的原因,如圖:

image.png

此時逞带,我聲明了變量a欺矫,但是我并沒有給a定義方法,但我toString卻沒有錯展氓,就是因為我的proto屬性已經(jīng)有了這個方法汇陆,所以不報錯。

那么每個對象的原型鏈指針(proto)指向誰呢带饱?內(nèi)置對象的原型對象指向Function的原型,包括內(nèi)置對象Function自己的毡代,如圖:

image.png

但是,內(nèi)置對象的原型對象(Function.prototype)的原型對象是誰呢勺疼?因為他本身就是個對象啊教寂,于是他就指向?qū)ο蟮脑蛯ο螅谑?/p>

image.png

也就是說执庐,我們以后看見一個兌現(xiàn)酪耕,就判斷他是屬于啥方法,接著就歸到啥方法的原型中去就好了

給出公式:

Object.proto === 對應(yīng)方法的原型.prototype;

再舉一個例子轨淌,還是那個空對象a,a的原型鏈指向應(yīng)該是Object的原型迂烁,因為他就是Object方法構(gòu)造出來的,而a.proto.proto(a的原型的原型鏈指向)就應(yīng)該是null,因為他就是object.prototype.proto递鹉,值為null

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末盟步,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子躏结,更是在濱河造成了極大的恐慌却盘,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異黄橘,居然都是意外死亡兆览,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門塞关,熙熙樓的掌柜王于貴愁眉苦臉地迎上來抬探,“玉大人,你說我怎么就攤上這事帆赢⌒⊙梗” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵匿醒,是天一觀的道長场航。 經(jīng)常有香客問我,道長廉羔,這世上最難降的妖魔是什么溉痢? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮憋他,結(jié)果婚禮上孩饼,老公的妹妹穿的比我還像新娘。我一直安慰自己竹挡,他們只是感情好镀娶,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著揪罕,像睡著了一般梯码。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上好啰,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天轩娶,我揣著相機(jī)與錄音,去河邊找鬼框往。 笑死鳄抒,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的椰弊。 我是一名探鬼主播许溅,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼秉版!你這毒婦竟也來了贤重?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤沐飘,失蹤者是張志新(化名)和其女友劉穎游桩,沒想到半個月后牲迫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體耐朴,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡借卧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了筛峭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片铐刘。...
    茶點(diǎn)故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖影晓,靈堂內(nèi)的尸體忽然破棺而出镰吵,到底是詐尸還是另有隱情,我是刑警寧澤挂签,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布疤祭,位于F島的核電站,受9級特大地震影響饵婆,放射性物質(zhì)發(fā)生泄漏勺馆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一侨核、第九天 我趴在偏房一處隱蔽的房頂上張望草穆。 院中可真熱鬧,春花似錦搓译、人聲如沸悲柱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽豌鸡。三九已至,卻和暖如春段标,著一層夾襖步出監(jiān)牢的瞬間涯冠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工怀樟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留功偿,地道東北人。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓往堡,卻偏偏與公主長得像械荷,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子虑灰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容