À l'aide de JSON.stringify sur la classe personnalisée

Je suis en train de stocker un objet dans le redis, qui est une instance d'une classe, et donc a des fonctions, voici un exemple:

function myClass(){
    this._attr = "foo";
    this.getAttr = function(){
        return this._attr;
    }
}

Est-il un moyen de stocker de cet objet dans le redis, avec toutes les fonctions? J'ai essayé JSON.stringify() mais seulement les propriétés sont conservées. Comment puis-je stocker les définitions de fonction et d'être en mesure d'effectuer quelque chose comme ce qui suit:

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'"

Comment puis-je obtenir foo lors de l'appel de parsedObj.getAttr()?

Vous en remercie d'avance!

MODIFIER

Ai une suggestion pour modifier le MyClass.prototype et stocker les valeurs, mais que penser de quelque chose comme ça (d'autres fonctions que le setter/getter):

function myClass(){
    this._attr = "foo";
    this._accessCounts = 0;
    this.getAttr = function(){
        this._accessCounts++;
        return this._attr;
    }
    this.getCount = function(){
        return this._accessCounts;
    }
}

Je suis en train d'illustrer une fonction qui calcule quelque chose comme un nombre ou une moyenne à chaque fois qu'il est appelé, en dehors de faire d'autres choses.

OriginalL'auteur scanales | 2012-11-27