I have this class/function
function Menu()
{
this.closetimer = 0;
this.dropdown = 0;
}
Menu.prototype.menuTimer = function()
{
this.closetimer = setTi
you define a reference to the Menu (this) while you have access to it..
Menu.prototype.menuTimer = function(){
var _self = this;
this.closetimer = setTimeout(function(){
_self.menuClose();
}, this.timeout);
}
In your setTimeout() callback, this refers to window, just keep a reference like this:
Menu.prototype.menuTimer = function(){
var self = this;
this.closetimer = setTimeout(function(){
self.menuClose();
}, this.timeout);
}
Another way is to bind the inner function.
Menu.prototype.menuTimer = function(){
this.closetimer = setTimeout(function(){
this.menuClose();
}.bind(this), this.timeout);
}
Menu.prototype.menuTimer = function(){
this.closetimer = setTimeout(this.menuClose.bind(this), this.timeout);
}