[POO] [Orienté objet] Affectation d'une variable
Bonjour à tous,
Alors je me mets au javascript orienté objet. J'ai une fonction qui me crée un objet XMLHttpRequest suivant le navigateur.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| function createXHR() {
var xhr = false;
try {
xhr = new ActiveXObject('Msxml2.XMLHTTP');
} catch (err2) {
try {
xhr = new ActiveXObject('Microsoft.XMLHTTP');
} catch (err3) {
try {
xhr = new XMLHttpRequest();
} catch (err1) {
xhr = false;
}
}
}
return xhr;
} |
Ensuite, je crée une fonction de création d'objet Request.
Code:
1 2 3 4 5 6 7
| function Request(pFile) {
this.file = pFile;
this.Response = null;
} |
Et pour cet objet, je lui ajoute une méthode GET
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| Request.prototype = {
GET : function() {
var xhr = createXHR();
xhr.open("GET", this.file, true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
if (xhr.status != 404) {
this.Response = eval("(" + xhr.responseText + ")");
}
}
}
xhr.send(null);
}
} |
Après avoir crée un nouvel objet Request, appelé la méthode GET, si je cherche à accéder à ma variable Response, cela m'affiche null.
Code:
1 2 3 4 5 6 7 8
| var request = new Request("data.txt");
request.GET();
var response = request.Response;
alert(response); |
Donc apparement mon affectation dans ma function GET n'a pas fonctionné.
Suis-je clair ? Ma question est donc la suivante : comment affecter ma variable Response dans ma function GET afin que celle ci soit conservée par la suite ?
Merci d'avance