Вот пример:
function test(){
alert( this );
};
var a = test,
b = {
c: test
};
a();//этот вызов покажет window
b.c();//здесь - объект переменной b
Так вот к чему это я:
setInterval(m1.move, 1000);
Здесь в setInterval передается функция, при этом она уже оторвана от контекста, и this ссылается на глобальный объект:
//Есть конструктор (классов нет)
function Constructor(){
this.method = function(){
alert( this );
};
};
var instance = new Constructor;
instance.method();
// выведет instance
setTimeout( instance.method, 1 );
// выведет window
// выход: использование промежуточной функции-обертки
setTimeout( function(){
instance.method();
// выведет instance
}, 1 );