JS原型和繼承

來源:互聯網
上載者:User

標籤:func   type   概念   his   內建對象   show   bsp   簡單   添加   

1.建立對象的方式

原廠模式:使用簡單的函數建構函式,為對象添加屬性與方法,然後返回對象。這個模式後來被建構函式模式取代

建構函式模式:可以建立自訂參考型別,可以向建立內建對象執行個體一樣使用new

原型模式:使用建構函式的prototype屬性來指定那些應該共用的屬性和方法。

組合使用狗仔函數模式與原型模式時,使用建構函式來定義執行個體屬性,使用原型來定義共用的屬性和方法。

2.繼承

原型鏈繼承共用的屬性和方法,藉助建構函式繼承執行個體屬性

function Person(name,sex){
    this.name=name;
    this.sex=sex;
}
Person.prototype.showName=function(){
    alert(this.name);
}
Person.prototype.showSex=function(){
    alert(this.sex);
}

function Worker(name,sex,job){
    Person.call(this,name,sex);
    this.job=job;
}
for(var in Person.prototype){
    Worker.prototype[i]=Person.prototype[i];
}
Worker.prototype.showJob=function(){
    alert(this.job);
}
var obj=new Worker(‘blue‘,‘女‘,‘電腦‘);
obj.showName();
obj.showSex();
obj.showJob();

3.一些基本概念

原型對象:每個建構函式都有一個屬性---原型對象(prototype)。fun.prototype  就是fun的一個執行個體對象。就在fun建立的時候,就建立了一個它的執行個體對象並賦值給它的prototype。

原型對象的作用:主要用來繼承

原型鏈:JS在建立對象的時候,無論是普通對象還是函數對象,都有一個叫_proto_的內建屬性,用於指向建立它的函數對象的原型對象prototype  執行個體與原型的鏈條

總結:每個建構函式都有一個原型對象。原型對象都包含一個指向建構函式的指標,而執行個體都包含了一個指向原型對象的內部指標。

JS原型和繼承

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.