chargement d'objets en langage de prototype
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:
1 2
| Document = function() {... attributs ...}
Document.prototype = {... methodes ...} |
voici les méthodes que j'utilise pour les sauvegarde/chargement :
Code:
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:
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 ;)