All pastes #944672 Raw Edit

Miscellany

public text v1 · immutable
·published 2008-03-16 09:43 UTC
rendered paste body


MessageManager, {
   setRead : function(message) { // message est local à setRead
      new Action('setread', {id : message.id}, function(data) {
         alert(message.content); // Mal, le browser doit sauvegarder quelque part la valeur de message pour pouvoir la réutiliser ici -> memory leak
      }.bind(this));
   }
}

2 solutions :
1/
MessageManager, {
   setRead : function(message) { // message est local à setRead
      new Action('setread', {id : message.id}, function(data) {
         var id = data.id;
         // Rechercher le message avec son id dans la liste des messsages
         for (var i = 0; i < this.messages; i++)
            ...
      }.bind(this));
   }
}

2/
MessageManager, {
   setRead : function(message) { // message est local à setRead
      this.message = message; // this.message est un attribut de MessageManager
      new Action('setread', {id : message.id}, function(data) {
         // Grace au bind, on peut accèder à tous les attributs de MessageManager, dont this.message
         alert(this.message.content);
      }.bind(this));
   }
}