타이머 객체의 메서드를 변수에 담아서 호출했더니, 같은 함수인데 this가 사라져요.


const timer = {
seconds: 30,
show() { console.log(this.seconds + "초 남음"); }
};

timer.show();
const show = timer.show;
show();


30초 남음
undefined초 남음


timer.show()로 부르면 30초인데, 변수에 담아 show()로 부르면 undefined가 돼요. 같은 함수인데 어떻게 부르냐에 따라 this가 달라지는 이유가 뭐고, bind로 고정한다는 게 무슨 뜻인가요?