既typeof之後的另一位老朋友!
在咱們的上一節 中說道,函數也是一種對象。他也是屬性的集合,你也可以對函數進行自定義屬性。
不用等咱們去試驗,javascript自己就先做了表率,人家就默認的給函數一個屬性——prototype。對,每個函數都有一個屬性叫做prototype。
這個prototype的屬性值是一個對象(屬性的集合,再次強調!),默認的只有一個叫做constructor的屬性,指向這個函數本身。
如上圖,SuperType是是一個函數,右側的方框就是它的原型。
原型既然作為對象,屬性的集合,不可能就只弄個constructor來玩玩,肯定可以自定義的增加許多屬性。例如這位Object大哥,人家的prototype裡面,就有好幾個其他屬性。
**說到底:對象是由函數創建的.JavaScript的繼承離不開prototype.這也是問什麼函數的typeof為什麼是Function類型了,原則上就是形成了一個原型環鏈,可能這裡講的不叫抽象,這是必要要注意對象的"_proto_"**
這裡的"__proto__"成為“隱式原型”,下一節
閱讀更多 澤澤vlog 的文章
關鍵字: 原型 JavaScript 一節