今天,我发现了一个我无法解决的练习... Google无法提供帮助。
您能提示我在哪里找到解决方案吗?

a = new Pepper, b = new Pepper;


如何制作:

a === b
true


new Pepper和new Pepper()有什么区别?我不明白...

最佳答案

首先,new Pepper()new Pepper没有区别,除了最后一个会伤害您的感觉。如果您知道我的意思,那么感谢道格拉斯·克罗克福德。

如何制作a === b?答案是辛格尔顿。看一下这个:

function Pepper () {
 if (Pepper.instance) {
  return Pepper.instance
 }
 Pepper.instance = this;
}
a = new Pepper, b = new Pepper;
a === b


这是jsfiddle

如果您想了解有关Singletons的更多信息,请阅读:Learning JavaScript Design Patterns

10-06 03:23