古い方法:
var self = this;
setTimeout(function(){
console.log(self);
}, 5000);
jQuery の場合:
setTimeout($.proxy(function(){
console.log(this);
}, this), 5000);
バインドあり:
setTimeout((function(){
console.log(this);
}).bind(this), 5000);
通話あり:
setTimeout((function(){
console.log(this);
}).call(this), 5000);
apply も機能するようです:
setTimeout((function(){
console.log(this);
}).apply(this), 5000);
これらの方法の間にそれほど明白ではない違いがあるかどうか疑問に思っていました