01.this
- 일반 (
Normal
) 함수는 "호출 위치"에 따라 this
정의
- 화살표(
Arrow
) 함수는 자신이 선언된 "함수 범위"에서 this
정의
- 화살표 함수는 콜백 함수 내에서
this
가 정의되지 않으면 window
전역 객체로 설정
const heropy = {
name: "Heropy",
normal: function () {
console.log(this.name);
},
arrow: () => {
console.log(this.name);
}
}
heropy.normal();
heropy.arrow();
const amy = {
name: "Amy",
normal: heropy.normal,
arrow: heropy.arrow
}
amy.normal();
amy.arrow();
function User(name) {
this.name = name;
}
User.prototype.normal = function () {
console.log(this.name);
}
User.prototype.arrow = () => {
console.log(this.name);
}
const heropy = new User("Heropy");
heropy.normal();
heropy.arrow();
function User(name) {
this.name = name;
}
User.prototype.normal = function () {
console.log(this.name);
}
User.prototype.arrow = () => {
this.name = "Arrow"
console.log(this.name);
}
const heropy = new User("Heropy");
heropy.normal();
heropy.arrow();
const timer = {
name: "Heropy!!",
timeout: function () {
setTimeout(function () {
console.log(this.name);
}, 2000);
}
}
timer.timeout();
const timer = {
name: "Heropy!!",
timeout: function () {
setTimeout(() => {
console.log(this.name)
}, 2000)
}
}
timer.timeout()