每个字符串的javascript单例对象

标签 javascript oop singleton design-patterns

我想创建一个对象,它是每个字符串的单例。例如,当我调用 myObject("string1") 时,它总是返回相同的对象,但与 myObject("string2") 不同。

最佳答案

我认为您想做这样的事情(按照您的 myObject(name) API 示例):

var myObject = (function (){
  var objects = {
    "myString1": {
      name: "myString One Object"
      //...
    },
    "myString2": {
      name: "myString Two Object"
      //...
    }
  };
  //...
  return function (name) { // the actual function
    return objects[name];  // that retrieves the object
  };                       // by its "name" (e.g. 'myString1')
})();


myObject("myString1").name;  // "myString One Object"
myObject("myString1") === myObject("myString1"); // true, the same object ref.
myObject("myString2").name;  // "myString Two Object"

关于每个字符串的javascript单例对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6516635/

相关文章:

javascript - Flask JSON post 请求不起作用

javascript - 如何使用 JavaScript 离线读取 JSON 文件?

oop - CoffeeScript 中的私有(private)成员?

java - 是否可以将继承应用于 Singleton 类?

java - 使用类名调用不同类的方法

php - 调用 PHP 脚本后尝试使用 JS 切换 div

javascript - 无法从数据库打印答案

java - ComboBox 不监听事件

c# - 何时分类而不是区分行为

php - 具有多个数据库的单例