js構(gòu)造函數(shù)
function MathHandle(x,y){
this.x=x;
this.y=y;
}
MathHandle.prototype.add=function(){
return this.x+this.y;
}
var m=new MathHandle(1,2);
console.log(m.add())
繼承
function Animal(){
? ? this.eat=function(){
? ? ? ? console.log('Animal eat')
? ? }
}
function Dog(){
? ? this.bark=function(){
? ? ? ? console.log('Dog bark')
? ? }
}
//Dog綁定原型繼承Animal轧坎,得到Animal的實(shí)例
Dog.prototype=new Animal();
var gou=new Dog();
gou.eat();//Animal eat
gou.bark();//Dog bark
class基本語法
繼承
class MathHandle{
? ? ? ?constructor(x,y){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? this.x=x;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?this.y=y
? ? ? ? ? ? ? ? ? ?}
? ? add(){
? ? ? ? ? return this.x+this.y;
? ? ? ?}
}
const m=new MathHandle(1,2);
m.add()
class Animal{
? ? constructor(name){
? ? ? ? this.name=name
? ? }
? ? eat(){
? ? ? ? console.log('Animal eat')
? ? }
}
class Dog extends Animal{
? ? constructor(name){
? ? ? ? super(name)//指向更高級被繼承的Animal的constructor,將name傳過去
? ? ? ? this.name=name
? ? }
? ? bark(){
? ? ? ? console.log('Dog bark')
? ? }
}
const dog=new Dog();
dog.eat();
dog.bark();
總結(jié):
1. class在語法上屬于面向?qū)ο蟮膶懛?/p>
2.class實(shí)現(xiàn)繼承簡潔易于理解
3.采用的偏向后臺(tái)語言的類的寫法
4.本質(zhì)還是語法糖凳忙,使用prototype