[POO] Un peu de mal avec les membres de ma classe
Je me suis déjà un peu initié à la POO avec des langages plus évolués mais là j'ai un peu de mal avec javascript...Et avec l'heure qu'il est je ne suis plus trop apte à réfléchir :D
Ma classe est un parser XML
Code:
1 2 3 4 5
| function xmlParser()
{
/* je ne sais pas trop quoi mettre dans le constructeur
peut être this.xmlDoc = xmlDoc avec xmlDoc en paramètre mais ça ne marche pas non plus */
} |
Puis vient ensuite la méthode loadXML et là vient le problème ce qui est un peu normale...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| xmlParser.prototype.loadXml = function(file)
{
/* chargement du fichier XML */
try {
// navigateur basé sur Gecko
if (document.implementation && document.implementation.createDocument)
{
this.xmlDoc = document.implementation.createDocument("", "doc", null);
this.xmlDoc.onload = function() { this.loaded = true; }
this.xmlDoc.load(file);
}
// il y a d'autres tests pour IE et XMLHTTPRequest mais on va faire court.
} catch (e) {
alert(e);
return false;
}
return true;
} |
Mon problème c'est qu'ainsi je me retrouve avec une erreur capté par catch
Citation:
TypeError: xmlDoc has no properties
car en fait je n'arrive pas à définir xmlDoc afin de la trimbaler dans toutes les méthodes de la classe...
Par contre si je fais
Code:
1 2 3
| var xmlDoc = document.implementation.createDocument("", "doc", null);
xmlDoc.onload = function() { this.loaded = true; }
xmlDoc.load(file); |
Je n'ai évidemment pas d'erreur mais ma variable n'est visible que dans la méthode loadXml...
En clair, comment puis-je définir proprement xmlDoc (ou toute autre variable) afin de pour l'utiliser dans toutes les méthodes de la classe ??
modéré par denisC : ajout du tag résolu