请教一下,代码运行在node环境中,为什么只输出了一次log,不应该是两次才对嘛?
题主应该是理解为 var a = ...
和 var b = ...
时才触发 Singleton.getInstance
上的“方法”。
但是实际上在定义 getInstance
时就已经执行完成了,它只是一个“值”:
Singleton.getInstance = (function(){
...
})() //注意这个括号,在这里就已经执行完成输出 log 了。
想要深入了解,请阅读 MDN 官方文档立即执行函数表达式。