五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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)贊、收藏、評論三連~


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

分享到微博請遵守國家法律
沧州市| 介休市| 两当县| 清苑县| 五莲县| 辉南县| 海门市| 龙陵县| 曲沃县| 丰台区| 锦州市| 桃江县| 临桂县| 额尔古纳市| 长兴县| 虎林市| 金秀| 晋宁县| 洪雅县| 镇宁| 乌拉特后旗| 古丈县| 弥渡县| 庆城县| 常州市| 鄂州市| 临清市| 紫阳县| 万山特区| 黔江区| 锦屏县| 中江县| 正安县| 横山县| 会理县| 双桥区| 沙洋县| 赤峰市| 元朗区| 阳东县| 宝应县|