おそらく、私は、というオブジェクトを持っていcache
てcache.a
、明示的に.のようなものに設定する前に、文字通りすべてに事前定義された値をデフォルトとして使用するようにしたいのです。これを達成する方法はありますか?cache.b
cache.c
cache.whatever
VALUE
cache.a = 'FOOBAR'
質問する
46 次
2 に答える
1
あなたはこれを次のようにすることができます
function Cache(){
this.GetValue = function(propertyName){
if(!this[propertyName]){
this[propertyName] = "Value";
}
return this[propertyName];
}
this.SetValue = function(propertyName, Value){
this[propertyName] = Value;
}
return this;
}
編集:
次のように使用できます...
var cache = new Cache();
alert(cache.GetValue("a")); // It will alert "Value"
var newValueOfA = "New Value";
cache.SetValue("a", newValueOfA);
alert(cache.GetValue("a")); // It will alert "New Value"
于 2012-12-12T10:54:31.173 に答える
0
Nope. Your best bet is to introduce an extra layer of indirection:
var Cache = function(){
this.values = {};
};
Cache.prototype.set = function(key, value) {
this.values[key] = value;
};
Cache.prototype.get = function(key) {
var result = this.values[key];
if (typeof result === 'undefined') {
return 'default';
}
return result;
};
于 2012-12-12T10:45:44.603 に答える