我正在尝试将对象存储在redis中,这是一个类的实例,因此具有函数,这是一个示例:
function myClass(){
this._attr = "foo";
this.getAttr = function(){
return this._attr;
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法将这个对象与函数一起存储在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'"
Run Code Online (Sandbox Code Playgroud)
我怎么才能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;
}
}
Run Code Online (Sandbox Code Playgroud)
我试图说明一个函数,除了做其他的东西之外,它会在调用时计算类似计数或平均值的函数.