Je suis nouveau sur JavaScript. Nouveau pour autant que tout ce que j'ai vraiment fait avec est modifié le code existant et a écrit de petits morceaux de jQuery.'this' est indéfini dans les méthodes de classe JavaScript
Maintenant j'essaye d'écrire une "classe" avec des attributs et des méthodes, mais j'ai des problèmes avec les méthodes. Mon code:
function Request(destination, stay_open) {
this.state = "ready";
this.xhr = null;
this.destination = destination;
this.stay_open = stay_open;
this.open = function(data) {
this.xhr = $.ajax({
url: destination,
success: this.handle_response,
error: this.handle_failure,
timeout: 100000000,
data: data,
dataType: 'json',
});
};
/* snip... */
}
Request.prototype.start = function() {
if(this.stay_open == true) {
this.open({msg: 'listen'});
} else {
}
};
//all console.log's omitted
Le problème est, en Request.prototype.start
, this
est indéfini et donc l'instruction if évalue false. Qu'est-ce que je fais mal ici? Comment appelez-vous la fonction de démarrage?
Y a-t-il une raison pour laquelle vous avez 'start' dans le' prototype'? – xj9
Que définit 'Request.prototype'? –
Je n'ai aucune idée: S –