可以在构造函数周围创建一个闭包来保存实例的唯一 ID:
const MyObject = (() => {
let id = 0;
return function() {
this.id = id++;
};
})();
如何使用类语法实现相同的效果?有没有办法围绕类的构造函数
函数创建一个闭包?
最佳答案
是的,使用 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);
关于javascript - ES2015 (ES6) 类中类构造函数的闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45889708/