객체의 메소드를 콜백 함수로 전달하면 해당 객체를 this로 바라볼 수 없다.
객체를 바라보게 하고 싶은 경우에는
but 문제점이 많고 복잡한 전통적인 방식(변수에 this를 담고 클로저를 이용) 대신 ES5이후부터는 bind를 이용하면 된다.
var obj1 = {
name: 'obj1',
func: function() {
console.log(this.name);
}
};
setTimeout(obj1.func.bind(obj1), 1000);
var obj2 = { name: 'obj2'};
setTimeout(obj1.func.bind(obj2),1500);