5條原型規則:
1.所有的引用型別(陣列、物件、函式),都具有物件特性,即可自由擴充套件屬性(除了「null」除外)。
2.所有的引用型別(陣列、物件、函式),都有乙個_proto_(隱式原型)屬性,屬性值是乙個普通的物件。
3.所有的函式,都有乙個prototype(顯式原型)屬性,屬性值也是乙個普通的物件。
4.所有的引用型別(陣列、物件、函式),_proto_屬性值指向他的建構函式的「prototype"屬性值。
5.當時吐的道乙個物件的某個屬性時,如果這個物件本身沒有這個屬性,那麼會去他的_proto_(即他的建構函式的prototype)中尋找。
f.tostring()//要去f._proto_.proto_:
當這個物件沒有這個屬性的時候,就會娶她自身的隱式原型中去找,隱式原型又指向她建構函式的顯式原型foo.prototype,顯示原型指向普通物件,即object,又foo.prototype也是乙個物件,從他的屬性中找tostring依然也要先從他的隱式原型中去找.
instanceof :用於判斷引用型別屬於哪個建構函式的方法。
原型繼承的例項:
JS原型與原型鏈
凡是通過new function 建立的物件都是函式物件,其他的是普通物件。var o1 var o2 new object var o3 new f1 function f1 var f2 function var f3 new function str console.log str conso...
js原型與原型鏈
定義函式的時候都建立了乙個函式物件,裡面有個prototype屬性指向了乙個object空物件,這個物件就是函式的原型物件。原型物件中有個constructor屬性,指向函式物件 通過new建立的物件,有個 proto 屬性 左右都是兩個下劃線 它等於對應建構函式的的prototype的值,如上圖。...
js 高階 原型與原型鏈
所有函式都有乙個特別的屬性 prototype 顯式原型屬性 所有例項物件都有乙個特別的屬性 proto 隱式原型屬性 1.每個函式都有乙個prototype屬性,它預設指向乙個物件 objectg 即稱為 原型物件 顯式原型與隱式原型的關係 函式的prototype 定義函式時被自動賦值,值預設為...