插件窝 干货文章 js单例模式怎么传值

js单例模式怎么传值

传递 strong 实例 instance 583    来源:    2024-10-24
值通过引用传递。在 javascript 单例模式中传递值:1. 在构造函数中传递值。2. 在公开方法中存储值。3. 在需要时检索值。

JavaScript 单例模式中的值传递

在 JavaScript 中,单例模式是一种设计模式,它确保只有一个类的实例被创建和使用。通过创建一个私有变量来存储实例,并提供一个公开方法来检索实例,可以实现单例模式。

值传递

在 JavaScript 中,值通过引用传递。这意味着传递给函数或对象的变量的实际值不会被复制,而是其存储位置的引用会被传递。

如何在单例模式中传递值

要将值传递给单例模式中的实例,可以使用以下步骤:

  1. 在创建实例时,将值作为参数传递给构造函数。
  2. 在公开方法中,将传递的值存储在一个私有变量中。
  3. 当需要使用该值时,从私有变量中检索它。

示例

下面是一个 JavaScript 单例模式的示例,它演示了如何传递值:

const Singleton = (function () {
  let instance;

  function createInstance(value) {
    if (!instance) {
      instance = {
        value: value
      };
    }

    return instance;
  }

  return {
    getInstance: function (value) {
      return createInstance(value);
    }
  };
})();

const instance1 = Singleton.getInstance(10);
console.log(instance1.value); // 10

const instance2 = Singleton.getInstance(20);
console.log(instance2.value); // 10

注意:

  • 在此示例中,value 参数在 createInstance 函数中存储在一个私有变量中,并可以通过 instance.value 访问。
  • getInstance 方法返回单例的实例,该实例包含传递给构造函数的值。
  • instance1 和 instance2 引用相同的单例实例,因此它们都具有相同的值(10),即使在创建 instance2 时传递了不同的值。这是因为 JavaScript 值通过引用传递。