原生js中的類、靜態方法、繼承
function person(name,age)
---$`)
}}//原型鏈上的屬性和方法;可以被多個例項共享
person.prototype.*** =
'boy'
;person.prototype.work = function(
)---$---$`)
}//靜態方法
person.setname = function(
)//例項方法是通過例項化來呼叫的;靜態方法是通過類名直接呼叫
var p = new person(
'smileyqp',18)
;p.run();
p.work(
)person.setname(
); //執行靜態方法
function person(name,age)
---$`)
}}//原型鏈上的屬性和方法
person.prototype.work = function(
)function web(name,age)
web.prototype = new person(
); //2、原型鏈繼承
var web = new web(
'smileyqp',16)
;
原型鏈繼承和物件冒充整合的優缺點
原型鏈繼承:web.prototype = new person()
class person
getname(
) setname(name)
getinfo(
);age:$`)
}}var p = new person(
'smileyqp',20)
; //例項化會執行建構函式
p.setname(
'yqp'
)p.getname(
); //yqp
p.getinfo(
); //name:smileyqp;age:20 這個getinfo方法是繼承父類的getinfo方法
class web extends person
proint();
}var w = new web(
'smileyqp',18,'girl');
w.print(
); //girl
class person
proint();
//靜態方法
static work()}
//呼叫靜態方法
person.work();
//es6中也可以直接給類繫結乙個靜態方法
person.instance =
'這是乙個例項,這是乙個靜態方法'
;console.log(person.instance)
有多個例項的時候建構函式只呼叫一次class db
return db.instance;
} constructor(
) connect(
) find()}
//d1會進入建構函式;例項化d2和d3則不會
var d1 = db.getinstance();
var d2 = db.getinstance();
var d3 = db.getinstance(
);
原生js封裝共有類繼承物件
var ly 建立乙個中間構造物件,將target的prototype繼承與new f 這樣target可以建立自己的prototype,而不影響共有類。也就是origin f.prototype origin.prototype 將構造物件f的prototype屬性等於共有類origin的prot...
python中例項方法 靜態方法以及類方法的區別
搞清楚python中例項方法 靜態方法和類方法的區別,先上一段 class person object num 0 類變數 def init self,name self.name name def get name self 例項方法 return self.name staticmethod d...
原生js的8種類繼承方式
1.原型鏈繼承 grand.prototype.lastname yang function grand var grand new grand father.prototype grand function father var father new father son.prototype fa...