es5建立物件和es6的Class
阿新 • • 發佈:2019-01-07
es5建立物件的方式 有工廠模式,建構函式模式,原型模式和 組合使用建構函式模式+原型模式
最常使用的模式是 組合使用 建構函式模式+原型模式,這樣的好處是,每個例項可以保持獨特的例項屬性,也可以共有原型方法
function Person(name,age){
this.name=name;
this.age=age;
}
Person.prototype.sayName=function(){
return this.name+this.age;
}
var person1=new Person('zhm',25);
在es5中我們建立物件最好的方法就是 組合建構函式模式和原型模式
而es6幫我們封裝了這種模式
class Person{
construnctor(name,age){
this.name=name;
this.age=age;
}
sayName(){
return this.name+this.age;
}
}
var student=new Student('zhm',18);
Class類中的constructor方法就相當於es5中的建構函式,其實類中的所有方法都定義在了prototype上,prototype物件的constructor屬性也指向class類本身,被所有例項共享
不同的是,Class只能通過new操作符呼叫,不能像es5中的建構函式一樣,當成普通函式呼叫。
Class的寫法就是一種語法糖,這些功能es5都能實現,只不過使用class可以讓物件原型更加清晰,更接近面向物件程式設計。
constructor()方法是類的預設方法,所有的類都有constructor方法,如果constructor方法沒有被顯式定義,js會自動新增一個空的