this가 달라지는 경우
var healthObj = {
name : "달리기",
lastTime : "PM10:12",
showHealth : function() {
setTimeout(function() {
console.log(this.name + "님, 오늘은 " + this.lastTime + "에 운동을 하셨네요");
}, 1000)
}
}
healthObj.showHealth();
bind method
- bind는 새로운 함수를 반환하는 함수이다.
- 첫번째 인자로 this를 주어 실행 시점의 this를 내부 함수에게 줄 수 있다.
var healthObj = {
name : "달리기",
lastTime : "PM10:12",
showHealth : function() {
setTimeout(function() {
console.log(this.name + "님, 오늘은 " + this.lastTime + "에 운동을 하셨네요");
}.bind(this), 1000)
}
}
healthObj.showHealth();
- setTimeout내 this는 healthObj를 가리키게 된다.
- ES6부터는 객체에서 메서드를 사용할 때 function 키워드를 생략할 수 있다.