最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【四】原型鏈

2023-08-20 18:05 作者:馳驥  | 我要投稿


本篇章主要講述原型鏈相關(guān)知識點(diǎn),為后續(xù)的函數(shù)篇章先鋪墊一定的前綴知識,也承接了引用類型篇章的知識。

面試回答

1.原型鏈:原型鏈主要有三部分構(gòu)成:原型、構(gòu)造函數(shù)、實(shí)例,實(shí)例可以通過new構(gòu)造函數(shù)獲取,構(gòu)造函數(shù)可以通過實(shí)例的constructor或者原型的constructor獲取,原型可以通過實(shí)例的__proto__或者構(gòu)造函數(shù)的prototype獲取。原型也可以通過__proto__獲取父級元素的原型,直到最終拿到null。

知識點(diǎn)

1.原型鏈



圖片為我對于原型鏈的理解,一起讓我們由易入難去理解,原型鏈中的三個主體:原型、構(gòu)造函數(shù)、實(shí)例對象。

原型

可以簡單理解為儲存方法和屬性的對象(JS萬物皆可為對象)

構(gòu)造函數(shù)

只要被new過的函數(shù)就可以被稱為構(gòu)造函數(shù),每個函數(shù)都有一個prototype屬性,它指向該函數(shù)的原型,構(gòu)造函數(shù)也是如此。構(gòu)造函數(shù)里有兩個特殊的存在:Object、Function,前者在所有的JS對象的原型鏈上,后者則是所有的構(gòu)造函數(shù)(包括它自己)的都是Function的實(shí)例對象,所以

實(shí)例對象

由于不同的創(chuàng)建方式有差異,因此從創(chuàng)建方式來理解,一個為字面量方式;一個為構(gòu)造器方式;一個為Object.create方式。三者的差異在于不同的創(chuàng)建方式的原型不同。

字面量方式:let a={} ?,原型為function Object的prototype,相當(dāng)于new Object()

構(gòu)造器方式:let p = new Person(),原型為Person函數(shù)的prototype

Object.create()方式:let a={} ? let b=Object.create(a) ,原型為a

按照上述理解,可以構(gòu)建出如下思維導(dǎo)圖:


然后再梳理一下實(shí)例對象、構(gòu)造函數(shù)、原型之間的轉(zhuǎn)換:

可得,如下思維導(dǎo)圖:


由于__proto__是任何對象都有的屬性,而JS中萬物皆可為對象,因此可以通過__proto__不斷連接其父級原型對象,到了父級原型對象這一步,同樣也會有新的原型圈(就是下圖的閉環(huán)),最后會到達(dá)頂層Object.prototype,它的 __proto__指向null結(jié)束,這條鏈路就被稱為原型鏈,同時JS引擎查找屬性時也會按照原型鏈的方向逐層去查找直到找到為止。

按照上述理解,并添以簡單代碼加以理解,可得思維導(dǎo)圖:


當(dāng)然,其中還有不明確的點(diǎn),那么就需要自己去搜索理解,搞明白每一個點(diǎn)所代表的意義和作用,給個原型鏈的經(jīng)典圖用以檢驗(yàn),從左至右的三列分別對應(yīng)的是實(shí)例、構(gòu)造函數(shù)、原型:

最后

走過路過,不要錯過,點(diǎn)贊、收藏、評論三連~


【四】原型鏈的評論 (共 條)

分享到微博請遵守國家法律
东兰县| 肥乡县| 仙居县| 夏邑县| 长子县| 馆陶县| 东兴市| 同江市| 太保市| 桑植县| 屏边| 万载县| 南部县| 迁西县| 宁陵县| 巩留县| 武冈市| 高青县| 徐水县| 贵州省| 鄂温| 南昌市| 孟州市| 林周县| 清新县| 台前县| 武宁县| 天峨县| 双峰县| 岚皋县| 玉环县| 靖江市| 湾仔区| 株洲县| 清苑县| 余姚市| 兴国县| 惠安县| 镇沅| 乌苏市| 永州市|