構造函數,對象原型,實例對象三者之間的關係

1.構造函數,原型對象,實例對象三者之間的關係

    每建立一個函數,該函數都會自動帶有一個prototype屬性。該屬性是一個指針,指向一個對象,該對象稱之爲原型對象(後期咱們能夠使用這個原型對象幫助咱們在js中實現繼承).
    原型對象上默認有一個屬性constructor,該屬性也是一個指針,指向其相關聯的構造函數。
    經過調用構造函數產生的實例對象,都擁有一個內部屬性,指向了原型對象。其實例對象可以訪問原型對象上的全部屬性和方法。
總結:三者的關係是,每一個構造函數都有一個原型對象,原型對象上包含着一個指向構造函數的指針,而實例都包含着一個指向原型對象的內部指針。通俗的說,實例能夠經過內部指針訪問到原型對象,原型對象能夠經過constructor找到構造函數。javascript

function People(){
    this.type='人'
}
People.prototype.showType=function(){
    alert(this.type);
}

var person=new People();
//調用原型對象上面的方法
person.showType();//最後結果彈框彈出人

以上代碼定義了一個構造函數People(),People.prototype指向原型對象,其自帶屬性construtor又指回了People,即People.prototype.constructor==People.實例對象person因爲其內部指針指向了原型對象,因此能夠訪問原型對象上的showType方法。java

記住People.prototype只是一個指針,指向的是原型對象,而非構造函數,利用這個指針能夠幫助咱們實現js繼承函數

相關文章
相關標籤/搜索