js 原型和原型鏈解釋


1,為什么需要原型?

  用構造函數生成實例對象,有一個缺點,無法共享屬性和方法。

  每一個實例對象,都有自己的屬性和方法的副本。這不僅無法做到數據共享,也是極大的資源浪費

  考慮到這一點,設計js作者決定為構造函數設置一個prototype屬性。

  這個屬性包含一個對象(以下簡稱"prototype對象"),所有實例對象需要共享的屬性和方法,都放在這個對象里面;那些不需要共享的屬性和方法,就放在構造函數里面。

  實例對象一旦創建,將自動引用prototype對象的屬性和方法。也就是說,實例對象的屬性和方法,分成兩種,一種是本地的,另一種是引用的。

2,原型(prototype)

  概念:每一個構造函數都有一個prototype屬性,指向另一個對象。這個對象的所有屬性和方法,都會被構造函數的實例繼承。

3,原型的繼承方式(兩類5種)

  1,構造函數綁定 (使用call或apply方法,將父對象的構造函數綁定在子對象上,即在子對象構造函數中加一行)

  2, prototype模式

  3, 直接繼承prototype

  4,利用空對象作為中介

  5,拷貝繼承

4,原型鏈

  概念:在javascript中,每個對象都有一個指向它的原型(prototype)對象的內部鏈接。每個原型對象又有自己的原型,直到某個對象的原型為null為止,組成這條鏈的最后一環

 

只是總結性的描述一下,想看詳細內容請點擊參考鏈接祥看

參考鏈接:簡書--https://www.jianshu.com/p/826b485c5696,

     阮一峰--http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance_continued.html


免責聲明!

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



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