我想创建一个每个字符串为singleton的对象。例如,当我调用myObject("string1")
时,它始终返回相同的对象,但与myObject("string2")
不同。
答案 0 :(得分:1)
我认为你想做这样的事情(遵循你的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"
答案 1 :(得分:1)
使用字符串作为属性创建一个对象,并指定适合的值:
var myObject = {
'string1': ... ,
'string2': ... ,
'string3': ... ,
...
};
然后通过字符串访问它们:
alert( myObject['string1'] ); // whatever
答案 2 :(得分:0)
试试这个
var MyObject = function(){
var objs = {};
return function(str){
if( objs[str] ){
return objs[str];
}else{
objs[str] = function(){
//some code here
};
return objs[str];
}
};
}();