1. 程式人生 > >es5建立物件和es6的Class

es5建立物件和es6的Class

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會自動新增一個空的