Bonjour,

J'ai un problème pour charger un objet en javascript. Ma démarche n'est probablement pas du tout la bonne à cause de mes réflexes de langages de classes.

J'ai une "classe" Document :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Document = function() {... attributs ...}
Document.prototype = {... methodes ...}
voici les méthodes que j'utilise pour les sauvegarde/chargement :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
setCurrentDocument = function(document) {localStorage.setItem("currentDocument",JSON.stringify(document));}
getCurrentDocument = function() {return JSON.parse(localStorage.getItem("currentDocument")));}
mais l'objet ainsi sauvegardé/chargé perd les méthodes propres à sa "classe" Document (celles déclarées dans Document.prototype).
Du coup, est-ce qu'il faut déclarer les méthodes autrement, de façon à ce qu'il les conserve? Ou bien est-ce que je dois écrire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
getCurrentDocument = function() {return new Document(JSON.parse(...));}
Dans ce cas, j'en viens à une deuxième question qui va vous paraitre stupide :
j'ai besoin de déclarer deux constructeurs :
Document = function() {...},
et aussi Document = function(doc) {...} afin de charger mon document comme décrit précédemment.
Mon problème, c'est comment faire ça en javscript ?

Encore une fois, je suis conscient que ma logique n'est pas la bonne. N'hésitez pas à m'ouvrir l'esprit