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 personshowname()`);
}}let p1=new person('aaaa',12);
let =p1;
showname();
class personset 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...