JS學習 原型鏈的理解

2021-07-04 09:09:43 字數 1007 閱讀 7961

首先我們先建立乙個建構函式,並建立兩個例項

shirt.prototype 任何乙個函式都有此屬性,但它只有函式當做類來用的時候才有意義,把所有共享的方法都儲存在此屬性上。這個屬性明顯是乙個物件型。

我覺得可以通俗的將原型理解為共享雲,之後定義的例項都可以訪問,也可以修改。

例項的查詢是分優先順序的,首先在自己本身中查詢,如果查詢不到就到共享中去查詢,如:

shirt.prototype

.fn=function();

console.log(shirt1.fn)

shirt1中是不存在fn屬性的,但是原型中存在,故可以查詢到。

shirt1.fn跟shirt2.fn以及shirt.fn都是同乙個

例項修改原型

shirt.prototype

.a=[1,2,3];

shirt1.a=1

; console.log(shirt2.a);

console.log(shirt1.a);

此時的列印結果為[1,2,3]和1

shirt1.a是給自己本身寫入了乙個屬性a,不涉及到查詢,所以,不會改變原型中的a

shirt1.a[1]=12

; console.log(shirt2.a);

console.log(shirt1.a);

這次涉及到查詢,要先找a在找a裡面索引為1的內容,故 訪問的是原型中的a,原型中的a改變了彈出

[1,12,3]和[1,12,3]

js 原型 原型鏈理解

執行發現如下 自定義乙個函式,函式包含兩個關鍵資料 prototype,proto 1 原型 prototype person具有prototype屬性 包含我們定義的屬性name,age以及constructor,並且constructor指向我們的person函式,可以理解為prototype就...

js原型鏈理解

關於原型鏈的問題也是領悟了很久,有時候突然覺得什麼都懂了,但下乙個問題出現令人一臉蒙比,好像又什麼都不懂,這是最近的一點經驗,記下來方便以後複習。先貼上最經典的原型煉圖,說實話,這圖是真的很精髓了 首先我們要知道這句話 js中所有的東西 當然都是物件 都有 proto 所有的函式除了有 proto ...

js原型鏈的理解

其實之前對js原型鏈有個基本的理解,但工作中用到的並不多,逐漸忘記了。所以準備寫個部落格。我覺得首先得明白乙個,就是每一次建立乙個建構函式 其實就是普通的函式 的時候,都會根據乙個特定的規則建立乙個原型屬性 prototype 其中包括兩項 construct和 proto 其次先來看下構造 函式建...