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

写出一个构造函数,使它的实例对象完全相等,例如:

function Parent(){  };

var p1 = new Parent();

var p2 = new Parent();

p1===p2;  // true

请问这个Parent构造函数应该怎么写???

扛耙民工
浏览 811回答 1
1回答

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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript