创建模块模式的多个对象

Create multiple objects of module pattern

本文关键字:对象 模块 模式 创建      更新时间:2023-09-26

请查看下面的示例代码:

var sample = (function () {
  var a, b;
  var sample = function (x, y) {
    a = x;
    b = y;
  };
  return {
    add: function () {
      return a + b;
    }
  }
})();

这个有什么问题吗?

如何创建示例对象的多个对象?

我应该如何编写构造函数?

我尝试通过以下方式创建对象:

var s = new sample(1, 2);

但是,它抛出了一个错误!

模块化模式只提供一个单例对象。所以,你不能创建它的实例。

但是,有一个变通办法。上面代码中的一个细微更改可以使您创建对象。

var sample = function (x, y) {
  var a = x; 
  var b = y;
  return {
    add: function () {
      return a + b;
    }
  }
};

现在,我可以打

var nine = new sample(4, 5); 
var five = new sample(2, 3);
alert(nine.add());
alert(five.add());