关闭ES2015(ES6)类中的类构造函数

时间:2017-08-25 21:37:11

标签: javascript class ecmascript-6 closures

可以在构造函数周围创建一个闭包来保存,例如,实例的唯一ID:

public void onTimeSet(TimePicker view, int hour, int minute) {
    // Do something with the time chosen by the user
}

如何使用类语法实现相同的功能?有没有办法在类的DateFormat.is24HourFormat() 函数周围创建一个闭包?

1 个答案:

答案 0 :(得分:4)

是的,使用class expressions即可:

const MyObject = (() => {
  let id = 0;

  return class MyObject {
    constructor() {
      this.id = id++;
    }
  };
})();

console.log(new MyObject().id);
console.log(new MyObject().id);
console.log(new MyObject().id);

或者您也可以使用常规类声明来完成它。

const MyObject = (() => {
  let id = 0;

  class MyObject {
    constructor() {
      this.id = id++;
    }
  }

  return MyObject;
})();

console.log(new MyObject().id);
console.log(new MyObject().id);
console.log(new MyObject().id);