繁体   English   中英

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

[英]Closure around class constructor in ES2015 (ES6) classes

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

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

  return function() {
    this.id = id++;
  };
})();

使用类语法如何实现相同的目的? 有没有一种方法可以创建围绕类的constructor函数的闭包?

是的,使用类表达式可以执行以下操作:

 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); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM