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

Javascript ES2015(ES6)类中类构造函数的关闭,javascript,class,ecmascript-6,closures,Javascript,Class,Ecmascript 6,Closures,可以围绕构造函数创建一个闭包来保存实例的唯一ID: const MyObject = (() => { let id = 0; return function() { this.id = id++; }; })(); 如何使用类语法实现同样的功能?有没有办法在类的构造函数函数周围创建闭包?是的,使用可以做到: constmyobject=(()=>{ 设id=0; 返回类MyObject{ 构造函数(){ this.id=id++; } }; })(); log(

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

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

  return function() {
    this.id = id++;
  };
})();
如何使用类语法实现同样的功能?有没有办法在类的
构造函数
函数周围创建闭包?

是的,使用可以做到:

constmyobject=(()=>{
设id=0;
返回类MyObject{
构造函数(){
this.id=id++;
}
};
})();
log(新的MyObject().id);
log(新的MyObject().id);

log(新的MyObject().id)
FYI,通过使用引用原始函数的新函数替换
MyObject.prototype.constructor
上的函数,可以仅包装构造函数,但我认为包装整个内容似乎更干净。仅供参考,您甚至可以省略名称:
返回类{…}