什么是原型、原型鏈,有什么作用?


什么是原型:

 原型:每一個對象都與另一個對象相關聯,那個關聯的對象就稱為原型。

例如:函數Person有一個屬性prototype,指向一個對象,對於普通函數來說沒多意義,對於構造函數就有作用了,當使用new操作符時,會把Person.prototype(原型對象)賦值給實例的__proto__(原型實例)屬性。

JS有一個原型查找機制,把原來定義在實例上的方法,放到原型對象上去,通過構造函數的new操作,會把原型對象賦值給實例的__proto__屬性,那么當使用返回的實例去調用某一個方法的時候,如果實例本身上沒有,就去自動去實例的__proto__上去查找,這樣達到方法的復用,減少內存開銷。

原型鏈:


原型鏈:每一個對象,都有一個原型對象與之關聯,這個原型對象它也是一個普通對象,這個普通對象也有自己的原型對象,這樣層層遞進,就形成了一個鏈條,這個鏈條就是原型鏈。通過原型鏈可以實現JS的繼承,把父類的原型對象賦值給子類的原型,這樣子類實例就可以訪問父類原型上的方法了。

Person.prototype.constructor == Person

Person.prototype.__proto__.constructor  == Object 

Person.prototype.__proto__ == Object.prototype
         
Object.prototype.__proto__ == null
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM