ES6 類和繼承

2022-08-23 22:45:17 字數 1798 閱讀 1385

class person

//等價於 person.prototype.showname

showname()`);

}}let p1=new person('aaaa',12);

//

表示式形式

const person=class }

let p1=new person('aaaa',12);

//

變數定義方法名

let aaa='ssss';

class person

//變數定義方法名

[aaa]()

}let p1=new person('aaaa',12);

console.log(p1[aaa]());

//ok

console.log(p1.ssss());//

ok

//

class沒有提公升功能

let p1=new person('aaaa',12);//

error:person is not defined

class person

}

class person

showname()`);

}}let p1=new person('aaaa',12);

let =p1;

showname();

class person

set aaa(val)`)

}get aaa()

}let p1=new

person();

p1.aaa=123; //

設定aaa屬性,值為123

console.log(p1.aaa);

//ass

//

靜態方法:類身上的方法 static

class person

static test()

}person.test();

//靜態方法

//

父類class person

showname()}//

子類class student extends person

showname()

showgrade()

}let stu1=new student('aaa','一年級');

stu1.showname();

//aaa 子類

stu1.showgrade();//

一年級

//

super指向父類的原型物件,所以定義在父類例項上的方法或屬性,是無法通過super呼叫的

class a }

class b extends a

}let b = new

b();

b.m

//undefined

//

如果super作為物件,用在靜態方法之中,這時super將指向父類,而不是父類的原型物件。

class parent

mymethod(msg)

}class child extends parent

mymethod(msg)

}child.mymethod(1); //

static 1

var child = new

child();

child.mymethod(2); //

instance 2

es6 類的繼承

function animal name animal.prototype.drink function animal.prototype.eat function item function dog name,breed animal.prototype dog.prototype animal....

ES6 類的繼承

類的繼承 super 關鍵字 子類通過 extends 關鍵字來繼承父類的所有屬性和方法 子類必須在constructor中呼叫super方法,否則新建例項會報錯 es5的繼承中,實質是先創造子類的例項物件this,然後再將父類的方法 屬性新增到this上面。es6的繼承中,實質是先創造父類的例項物...

ES6類的繼承

es6 引入了關鍵字class來定義乙個類,constructor是構造方法,this代表例項物件。constructor相當於python的init而this則相當於self 類之間通過extends繼承,繼承父類的所有屬性和方法。super關鍵字,它代指父類的this物件,子類必須在constr...