pardon110
在多数编程语言中,new操作通常被设计成获取新的实例对象,即得到一个副本。换而言之,原则上同一被new对象,其得到的实例本质上是不相等,才合乎规范,而new存在的意义就在于此。当然,在某些场景下(比如为了节省系统资源减少内存占用),需要实例对象相等,会有不同的处理技巧。就js而言,问题本质是构造一个“单例", 基本思想是缓存首次构造实例对象。最简单的示例如下var Single=(function () {
var _instance = null
return function () {
if(_instance===null){
_instance=this
}
return _instance
}
})()
var p1 = new Single()
var p2 = new Single()
console.log(p1===p2) // true