1. js的繼承機制
在js中,“萬物皆對象”,而對象間的繼承是通過原型繼承(即構造函數的prototype屬性)實現的,該prototype屬性的值是個對象(簡稱prototype對象吧),prototype對象在構造函數創建的所有實例中是共享的。而每個對象都是由對應的構造函數創建的,所以每個對象都可通過object.__proto__的方式訪問構造函數的prototype對象。
tips:Function
2.js原型關係
原型圖:
控制檯驗證:
3.總結:
因爲js裏面沒有類,所以對象之間的繼承是通過js特有的原型鏈來實現的。每個對象除了手動添加的屬性(包含普通屬性和方法,如:name:“zs”,say:function(){})外,都含有一個被自動添加的屬性對象(鍵名:_proto_,鍵值:prototype對象值),該prototype屬性對象中也都有一個constructor鍵,指向他的構造函數。上例原型關係如下:
f.__proto__和Foo.prototype是同一個對象,Foo.prototype.constructor = Foo