如果使用ES6 class方式实现,可以这样
单例的实现可以大胆的跟java一样了,比如,
class A {
constructor() {}
...
static getInstance() {
return this._instance || (this._instance = new A());
}
}
内部类,就是使用了class expressions。例如
class OutClass {
constructor() {}
...
}
OutClass.InnerClass = class {
constructor() {}
}
其实就是OutClass的一个静态属性,而这个属性是个类(对象)而已。