在javascript中只允许一个类成员的实例
Only allowing one instance of a class member in javascript
我在google地图API前面创建了一个助手类-只是为了学习。
我想在我的类中只保留一个google.maps.Map对象的实例,即使有人决定实例化该类的另一个实例。
我的背景是。net,这里的概念很简单——但是我仍然在适应javascript(和ES6),所以任何指针都是非常感谢的。
这是一个片段,解释了(通过注释)我要做什么。
class Foo {
constructor(bar) {
// If someone else decides to create a new instance
// of 'Foo', then 'this.bar' should not set itself again.
// I realize an instanced constructor is not correct.
// In C#, I'd solve this by creating a static class, making
// 'bar' a static property on the class.
this.bar = bar;
}
}
我想这就是你想要的:
var instance = null;
class Foo {
constructor(bar) {
if (instance) {
throw new Error('Foo already has an instance!!!');
}
instance = this;
this.bar = bar;
}
}
或
class Foo {
constructor(bar) {
if (Foo._instance) {
throw new Error('Foo already has an instance!!!');
}
Foo._instance = this;
this.bar = bar;
}
}
相关文章:
- ES6构造函数返回基类的实例
- 为什么可以't我使用成员方法初始化一个实例
- 如何访问实例上的静态成员
- 如何让每个实例继承其自己的成员实例
- 对于类实例的私有成员,是否有更优雅的方法
- Javascript:在闭包中,私有成员(var)可以在实例化后添加吗
- 如何使“this”引用成员函数而不是其所有者类的实例
- javascript中的闭包与c++中的类实例(它有一个私有成员和一个公共方法)相当吗
- 在Javascript中调用不带传递函数的组合私有类成员的公共实例方法
- 在javascript中只允许一个类成员的实例
- 创建一个不使用实例id的私有成员
- 在JavaScript中实现实例成员/方法
- 多次继承,使每个实例的成员保持私有
- 将实例化一个javascript函数计算它的成员函数
- 是否可以通过javascript原型为每个实例分配成员
- 私有成员被另一个实例覆盖
- 私有成员——跨实例共享的Javascript变量
- 是否可以在JavaScript构造函数中解构实例/成员变量?
- 通过实例方法修改类的所有成员
- Javascript封装——以任何方式访问给定实例的私有成员