ES6: Class类

Es6提供了新的构造函数写法,引入了Class这个关键字来声明一个构造函数

  • old type
function Person(x,y){
  this.x = x;
  this.y = y;
}
Person.prototype.init = function(){}
//实例
new Person(1,2)
  • now
class Person(){
  constructor(x,y){
  this.x = x;
  this.y = y;
  }
  init(){}
}
//实例
new Person(1,2)

注意方法间不要加“,”

  • 私有方法
    私有方法,顾名思义,只在对象内部调用,是常用的需求
class List(){
  _get(){
  }
  init(){}
}
//_get方法我用"_"做标示,证明他只在内部使用,是私有方法
  • 继承
    子类必须在constructor方法中调用super方法,否则新建实例时会报错。这是因为子类没有自己的this对象,而是继承父类的this对象,然后对其进行加工。如果不调用super方法,子类就得不到this对象。
class Person(){
  constructor(x,y){
  }
}
class students extends Person(){
  constructor(x,y,z){
    super(x,y);
    this.z = z;
}
}
  • set get
    在Class内部可以使用getset关键字,对某个属性设置存值函数和取值函数。

看到这里,其实是可以实现一个很简单的双向绑定

class bind(){
  constructor(ele){
    this.ele = document.getElementBy(ele)
  }
  get html() { 
    return this.element.innerHTML;
   } 
  set html(value) 
  { 
    this.element.innerHTML = value; 
  }
}
  • 静态方法
    static修饰的方法,不能被实例继承,直接在类上调用
class Person(){
  static age(){ return 'hh'}
}
Person.age()  ==> hh

你可能感兴趣的:(ES6: Class类)