首先我們先建立乙個建構函式,並建立兩個例項
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 其次先來看下構造 函式建...