Javascript ES2015(ES6)类中类构造函数的关闭
可以围绕构造函数创建一个闭包来保存实例的唯一ID: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(
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
上的函数,可以仅包装构造函数,但我认为包装整个内容似乎更干净。仅供参考,您甚至可以省略名称:返回类{…}
。