[英]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.