Javascript: stringify objet (y compris les membres de la fonction du type)

Je suis à la recherche d'une solution pour sérialiser (et unserialize) des objets Javascript à une chaîne sur tous les navigateurs, y compris les membres de l'objet qui se trouvent être des fonctions. Un objet typique ressemble à ceci:

{
   color: 'red',
   doSomething: function (arg) {
        alert('Do someting called with ' + arg);
   }
}

doSomething() ne contiennent que des variables locales (pas besoin de sérialiser le contexte de l'appel!).

JSON.stringify() permet d'ignorer la 'doSomething' membre, car c'est une fonction. J'ai connu le toSource() la méthode permettra de faire ce que je veux mais c'est FF spécifiques.

  • Je vais juste laisser un commentaire parce que je ne suis pas offrir une solution complète. Une chose qui peut aider, c'est que vous pouvez stringify une Fonction avec un appel à toString(). jsfiddle.net/HFMaz ce n'est Pas sûr de la croix-prise en charge du navigateur.
  • ceci est demandé régulièrement, mais je ne trouve rien de pertinent :\ pourquoi avez-vous besoin de sérialiser la fonction, de toute façon? peut-être il ya une meilleure façon d'organiser votre code?
  • C'est pour WYSIWYG projet. Chaque objet Javascript (avec des méthodes) définit le comportement des composants de la page. Le contenu de la page (y compris JS comportement) doit être enregistré côté serveur, donc sérialisé.
  • comment le code est-il créé? il semble que vous devriez avoir accès à une représentation de chaîne de tous à un point antérieur dans le processus.
  • J'espère que ce n'est pas utilisée par le grand public alors... sinon, vous devrez vous assurer qu'il n'y a aucun moyen que je peux XSS cette chose.