js 原型和原型鏈解釋

1,爲何須要原型?javascript

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

  每個實例對象,都有本身的屬性和方法的副本。這不只沒法作到數據共享,也是極大的資源浪費java

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

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

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

2,原型(prototype)設計

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

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

  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

相關文章
相關標籤/搜索