麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 如何講清楚JS原型鏈?

如何講清楚JS原型鏈?

來源:千鋒教育
發布人:qyf
時間: 2022-10-10 15:59:40 1665388780

  先看一個典型的單向鏈表

1

  上面這段代碼,是一個典型的單向鏈表

  我們只能通過n.next來找到下一個節點

  但是沒有辦法從當前節點找到上一個節點

2

  不過這和原型鏈有什么關系呢?

  目前還沒有關系。

  原型對象從哪來?

3

  分析上面這段代碼

  為什么obj明明是空的,卻還能調用toString方法?

  這toString方法是哪里來的呢?

  再比如我們的數組對象

4

  其實,這些方法都來自于一個叫做原型的家伙

  我們可以使用 對象.__proto__ 的形式把原型對象打印出來

5

  這是所有對象的一個隱式屬性, 也就是正常情況下打印對象, 我們是看不到這個屬性的

  但我們依然可以通過__proto__ 這樣一個比較奇怪的屬性名字來訪問原型對象

  這個屬性名稱訪問起來確實不夠方便,實際上它還有另外一種訪問方式

  也是一種比較正式的訪問方式, 就是通過函數名來訪問

  例如看下面這個例子

6

  現在我們大概有了一些疑問

  · 1.原型對象中的所有屬性,實例對象都能隨便訪問嗎?

  · 2.每個實例對象都有自己的原型對象, 還是大家共用一個?

  · 3.實例對象自己的屬性和原型的屬性沖突了, 會訪問誰呢?

  · 4.原型對象跟繼承有什么關系?

  · 5.原型鏈又是怎么來的?

  我們依次來解決這幾個疑問

  · 原型對象中的所有屬性,實例對象都能隨便訪問嗎?

  廢話不多說, 我們來試驗一下, 就知道結果

7

  在上面的代碼中,我們創建一個構造函數 Phone

  同時我們給原型對象,添加了 price、color兩個屬性

  同時添加了 playmusic、phonecall兩個方法

  接下來我們通過實例對象來訪問一下這些內容

8

  可以看到,原型中的屬性和方法都可以被實例對象直接訪問!

  · 每個實例對象都有自己的原型對象, 還是大家共用一個?

  這是一道非常簡單的數學證明題,證明過程如下:

9

  最終結論是, 所有實例對象共享同一個原型對象

  · 實例對象自己的屬性和原型的屬性沖突了, 會訪問誰呢?

  我們再來試驗一下

10

  可以看到, 如果對象本身存在這個屬性或方法, 會優先訪問自己的

  如果沒有, 則訪問原型的屬性, 訪問過程如下圖

11

  · 原型對象跟繼承有什么關系呢 ?

  請你再思考一個問題

  如果原型也是一個對象

  那么它必然也應該有自己的原型對象,不是嗎?

  我們可以通過 p1.__proto__.__proto__ 進行訪問

12

  我們把圖畫的再簡單一點

13

  從圖中可以看出,只要原型對象一直存在

  對象P1就擁有了所有原型對象的能力, 我們也管這個叫做 繼承

  而這些原型對象之間是什么關系呢?

  p1

  p1.__proto__

  p1.__proto__.__proto__

  p1.__proto__.__proto__.__proto__

  原型鏈, 因此而得名

  需要補充的問題

  原型對象真的沒有盡頭嗎?

  當然不是的, 原型對象由瀏覽器自動創建, 當然也有它自己的規則

  規則如下:

  1.每個構造函數在誕生的時候, 都會創建一個該函數的實例對象作為默認原型

  相當于 Phone.prototype = new Phone();

  2.而這個原型對象的原型, 則默認指向Object.prototype

  相當于 Phone.prototype.__proto__ = Object.prototype;

  3.當然, Object.prototype 也是它自己的實例

  相當于 Object.prototype = new Object();

  4. 但是, Object.prototype不再擁有原型對象

  相當于 Object.prototype.__proto__ = null

  5. 因此,原型對象是有上限的

  p1.__proto__ 可訪問

  p1.__proto__.__proto__ 可訪問

  p1.__proto__.__proto__.__proto__ 為null

  原型的最重要的作用就是擴展能力

14

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 亚洲福利精品一区二区三区| 四虎最新地址在线观看1080p | 亚洲国产美女精品久久久久| 国产卡一卡二卡3卡4乱码| 被cao的合不拢腿的皇后| 福利天堂| 成人免费漫画在线播放| 调教女m视频| 日本特黄特色aa大片免费| 纸画皮电影免费观看| 大雄的性生活| 欧美乱人妖大交xxxx| 天天做天天摸天天爽天天爱| 草樱免费视频| 羞羞电影快播| 性做久久久久免费观看| 美女张开腿让男人桶的视频| 日本理论在线| 日韩毛片电影| 成年在线观看免费人视频草莓| 成人午夜电影在线| 亚洲精品无码专区在线播放| 2021国产麻豆剧果冻传媒影视| 日韩欧美亚洲国产精品字幕久久久| 看看屋在线看看电影| 18女人毛片大全| 99精品视频免费观看| 伊人丁香狠狠色综合久久| 天天做天天摸天天爽天天爱| 麻豆影视视频高清在线观看| 男人黄女人色视频在线观看| 波多野结衣忆青春| 日本电影在线观看免费影院| 樱桃视频高清免费观看在线播放| 精品久久洲久久久久护士免费| 女人扒开裤子让男人桶| 日本动漫黑暗圣经| 芭蕉私人影院在线观看| 在线观看中文字幕码2023| 亚洲va韩国va欧美va| 调教h视频|