jueves, agosto 28, 2008

Mootools - Using .bind(this)

From MooTools Users | Google Groups


#############
var toto = new Class ({

Implements: Options,

options: {
message: "toto"
},

initialize: function(elem, options){
this.setOptions(options);
this.alternateMessage = "a message";
this.elem = elem;
this.elem.addEvent('click', function(){
this.alternateMessage = "other message";
this.aMethod();
}.bind(this));
},

aMethod: function(){
alert(this.options.message);
}

});

##################

in this class, you can see two effects of this binding in this
function

this.elem.addEvent('click', function(){
this.alternateMessage = "other message";
this.aMethod();
}.bind(this));

- this.alternateMessage is now changed for the whole class, not only
inside the fucntion as this refers to the class
- without binding the click function with .bind(this) the result would
be "this.alternateMessage has no properties", "this.aMethod() is not a function"
binding the function to the class (this) allows it to use any method
or this.var set inside it

1 comentario:

Anónimo dijo...

this one can interest you
http://www.moonkiki.com/moonkiki/imoogle