標籤: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 i 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原型和繼承