クラスのインスタンスであるredisにオブジェクトを保存しようとしているため、関数があります。例を次に示します。
function myClass(){
this._attr = "foo";
this.getAttr = function(){
return this._attr;
}
}
このオブジェクトを関数と共に redis に保存する方法はありますか? 試しJSON.stringify()
ましたが、プロパティのみが保持されます。関数定義を保存して、次のようなことを実行するにはどうすればよいですか。
var myObj = new myClass();
var stringObj = JSON.stringify(myObj);
// store in redis and retreive as stringObj again
var parsedObj = JSON.parse(stringObj);
console.log(myObj.getAttr()); //prints foo
console.log(parsedObj.getAttr()); // prints "Object has no method 'getAttr'"
foo
に電話した場合、どのように取得できparsedObj.getAttr()
ますか?
前もって感謝します!
編集
MyClass.prototype を変更して値を保存するという提案がありましたが、次のようなもの (setter/getter 以外の関数) はどうでしょうか。
function myClass(){
this._attr = "foo";
this._accessCounts = 0;
this.getAttr = function(){
this._accessCounts++;
return this._attr;
}
this.getCount = function(){
return this._accessCounts;
}
}
他の処理とは別に、呼び出されるたびにカウントや平均などを計算する関数を説明しようとしています。