ES6 中 class 的单例

Singleton with class in ES6

为什么这里会得到true,我理解单例的概念,但是反正myCount1和myCount2赋值给同一个对象,但是两个对象无论如何也不能相等,所以最后为什么会得到true,这里是代码:

class Counter{
  constructor(){
    if(typeof Counter.instance==="object"){
      return Counter.instance;
    }
    this.count=0;
    Counter.instance= this;
    return this;
  }

  getCounter(){
    return this.count;
  }

  increaseCounter(){
    return this.count++;
  }
}
const myCount1 = new Counter();
const myCount2 = new Counter();
console.log(myCount1===myCount2) //true , why??

因为它们引用内存中的同一个对象(这就是单例的用途)。如果你有

let a = {}
let b = {}

那他们不是===。 就像 java.

中的引用相等
String a ="ab";
String b = StringBuilder("ab").toString();
Then a != b