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
为什么这里会得到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