为了账号安全,请及时绑定邮箱和手机立即绑定

如何实现一个构造函数,使它两个实例对象相等?

如何实现一个构造函数,使它两个实例对象相等?

扛耙民工 2019-05-15 15:47:38
写出一个构造函数,使它的实例对象完全相等,例如:function Parent(){  };var p1 = new Parent();var p2 = new Parent();p1===p2;  // true请问这个Parent构造函数应该怎么写???
查看完整描述

1 回答

已采纳
?
pardon110

TA贡献1038条经验 获得超227个赞

在多数编程语言中,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


查看完整回答
反对 回复 2019-05-15
  • 1 回答
  • 0 关注
  • 810 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信