如何講清楚JS原型鏈-_第1頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、如何講清楚js原型鏈?這篇文章同時假定你知道什么是數(shù)據(jù)結(jié)構(gòu),以及單向鏈表先看一個典型的單向鏈表上面這段代碼,是一個典型的單向鏈表我們只能通過n.next來找到下一個節(jié)點但是沒有方法從當前節(jié)點找到上一個節(jié)點不過這和原型鏈有什么關(guān)系呢?目前還沒有關(guān)系。原型對象從哪來?分析上面這段代碼為什么obj明明是空的,卻還能調(diào)用tostring辦法?這tostring辦法是哪里來的呢?再比如我們的數(shù)組對象其實,這些辦法都來自于一個叫做原型的家伙我們可以用法 對象._proto_ 的形式把原型對象打印出來這是全部對象的一個隱式屬性, 也就是正常狀況下打印對象, 我們是看不到這個屬性的但我們依舊可以通過_prot

2、o_ 這樣一個比較驚奇的屬性名字來拜訪原型對象這個屬性名稱拜訪起來的確不夠便利,事實上它還有另外一種拜訪方式也是一種比較官方的拜訪方式, 就是通過函數(shù)名來拜訪例如看下面這個例子現(xiàn)在我們也許有了一些疑問1.原型對象中的全部屬性,實例對象都能任憑拜訪嗎?2.每個實例對象都有自己的原型對象, 還是大家共用一個?3.實例對象自己的屬性和原型的屬性矛盾了, 會拜訪誰呢?4.原型對象跟繼承有什么關(guān)系?5.原型鏈又是怎么來的?我們依次來解決這幾個疑問原型對象中的全部屬性,實例對象都能任憑拜訪嗎?廢話不多說, 我們來實驗一下, 就知道結(jié)果在上面的代碼中,我們創(chuàng)建一個構(gòu)造函數(shù) phone同時我們給原型對象,添加

3、了 price、color兩個屬性同時添加了 playmusic、phonecall兩個辦法接下來我們通過實例對象來拜訪一下這些內(nèi)容可以看到,原型中的屬性和辦法都可以被實例對象挺直拜訪!每個實例對象都有自己的原型對象, 還是大家共用一個?這是一道十分容易的數(shù)學(xué)證實題,證實過程如下:終于結(jié)論是, 全部實例對象分享同一個原型對象實例對象自己的屬性和原型的屬性矛盾了, 會拜訪誰呢?我們再來實驗一下可以看到, 假如對象本身存在這個屬性或辦法, 會優(yōu)先拜訪自己的假如沒有, 則拜訪原型的屬性, 拜訪過程如下圖原型對象跟繼承有什么關(guān)系呢 ?請你再思量一個問題假如原型也是一個對象那么它必定也應(yīng)當有自己的原型對

4、象,不是嗎?我們可以通過 p1._proto_._proto_ 舉行拜訪我們把圖畫的再容易一點從圖中可以看出,只要原型對象向來存在對象p1就擁有了全部原型對象的能力, 我們也管這個叫做 繼承而這些原型對象之間是什么關(guān)系呢?p1p1._proto_p1._proto_._proto_p1._proto_._proto_._proto_原型鏈, 因此而得名需要補充的問題原型對象真的沒有終點嗎?固然不是的, 原型對象由掃瞄器自動創(chuàng)建, 固然也有它自己的規(guī)章規(guī)章如下:1.每個構(gòu)造函數(shù)在出生的時候, 都會創(chuàng)建一個該函數(shù)的實例對象作為默認原型相當于 ptotype = new phone();2.而這個原型對象的原型, 則默認指向ototype相當于 ptotype._proto_ = ototype;3.固然, ototype 也是它自己的實例相當于 ototype = new object();4. 但是, ototype不再擁有原型對象相當于 ototype._proto_ = null5. 因此,原型對象是有上限的p1._p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論