一圖理解:JS原型與原型鏈

什麼是原型

JS是一個基於對象的腳本語言,和java等面嚮對象語言最大不一樣是:
JS中沒有類的概念(PS:ES6的類只是一種語法糖)java

原型就比如面向對象中的 (模具),沒有類,就沒有對象數組

面嚮對象語言中,要先定義類才能建立對象
JS中,無須定義原型就能夠直接建立對象

例子:
對象原型 -- Object.prototype
數組原型 -- Array.prototype
方法原型 -- Function.prototype函數

什麼是原型鏈?做用是什麼?

原型鏈就是原型與原型之間的關聯spa

做用:用於實現繼承,原型之間的繼承,對象之間的繼承
注意:JS內部繼承的實現就是靠原型鏈,沒有原型鏈就沒有繼承

原型鏈 :關係圖解

原型與原型鏈.png

注意事項

一、每一個對象都有__proto__屬性(指向構造函數的原型),每一個函數都有__proto__屬性和prototype屬性
二、數組的原型(Array.prototype)是一個數組
三、方法的原型(Function.prototype)是一個方法,但這個方法很特別,它沒有prototype屬性
四、Object.prototype是全部對象的基類,Object.prototype.__proto__爲nullprototype

相關文章
相關標籤/搜索