This is more of a sanity check than anything else. I\'ve found that when working with closures in Javascript I often use the following pattern to access the enclosing class
This is the commonly accepted pattern with the exception that that
is often used instead of self
.
You can pull a sneaky using a binding function like this:
var Binder = function(fnc, obj) {
return function() {
fnc.apply(obj, arguments);
};
};
and then changing your call to
MyClass.prototype.delayed_foo = function() {
setTimeout(Binder(function(){
this.foo("Lols");
},this), 1000);
};
jsfiddle example:
http://jsfiddle.net/ctrlfrk/6VaV6/