ES6對象與ES5對象的差別
晴-小雨 微風(fēng) 溫度 12-24°C
在es6中的面相對象與es5中的面向?qū)ο蟮膮^(qū)別是極大的,ea6中的面相對象則更像原汁原味的后端語言像java,c++等,而且在es5中的class保留字旅择,在es6中也成了實(shí)際有效的關(guān)鍵字腺阳。
我們來做個對比宿崭,
es5中創(chuàng)建一個對象需要用函數(shù)的形式去仿造后段語言中對象的形式去造對象:
function ren(name,age){
this.name=name;
this.age=age;
}
ren.prototype.aet = function(foot){
console.log(this.name+"aet"+foot);
}
var xiaoming = new ren("xiaoming",24);
xiaoming.aet("面包");
/*這是es5中 主流創(chuàng)建對象的方法之一,方法寫在原型鏈中*/
而es6中造對象則更為直觀與簡便懒豹,
class ren(){
//先創(chuàng)建構(gòu)造函數(shù)
constructor(name,sex,age,id){
this.name=name;
this.sex=sex;
this.age=age;
this.id=id;
}
//ES6中的對象的方法不需要單獨(dú)寫在原型鏈中
say(){
console.log(this.name+"說話");
}
//ES6中多了靜態(tài)方法的聲明與使用侦副,靜態(tài)方法是實(shí)例對象無法調(diào)用的污它,是通過原型.方法名進(jìn)行調(diào)用剖踊,靜態(tài)方法 多數(shù)用于存儲 公共方法,比如說要給 這一批 同類對象 進(jìn)行排序等
static paixu(){
console.log(this);
}
}
let ren1=new ren("小王","男",18,"10010");
//輸出一下該對象
console.log(run1);
//調(diào)用ren1對象的say方法
ren1.say();
//調(diào)用原型中的排序方法衫贬,該方法在此處并沒有實(shí)際作用
ren.paixu();
//ES6中的對象繼承德澈,與ES5不同,ES6中的繼承 是與后端語言十分相像固惯,
// 但是這里的繼承 格式 是 class + 子類名 + extends + 基類 {};
class student extends ren{
//這里需要注意 構(gòu)造函數(shù)的繼承 需要 這樣寫
// constructor (參數(shù)){
super(基類參數(shù));
***************
}
constructor(name,sex,age,id,sid){
super(name,sex,age,id);
this.sid=sid;
}
kaoshi(){
console.log(this.name+"考試");
}
let student1 = new student();
student1.name="xiaoming";
student.say();
console.log(studnet1);
}