화살표 함수 사용시 일반 function 선언문과 this 사용시 차이를 알고 있어야 한다.
항상 헷갈리는 부분이다. 그래서 간단하게라도 참고용 예제 코드를 작성하였다.
화살표 함수(Arrow Function)
const obj = {
prefix: 'hello~ ',
arr: ['sherlock', 'mina', 'lily'],
test() {
this.arr.forEach(value => {
console.log(this.prefix, value); // 상위 this를 가리킨다.
});
}
};
// > obj.test();
// hello~ sherlock
// hello~ mina
// hello~ lily
화살표 함수의 this 는 상위 this 를 가리킨다. (obj 를 가리킨다.)
일반 함수(Function)
const obj = {
prefix: 'hello~ ',
arr: ['sherlock', 'mina', 'lily'],
test() {
this.arr.forEach(function(value) {
console.log(this.prefix, value); // window or global 를 가리킨다.
});
}
}
// > obj.test();
// undefined "sherlock"
// undefined "mina"
// undefined "lily"
기존 일반함수에서는 obj 를 가리키지 않고 window 또는 node js 에서는 global 를 가리킨다.
'programming > javascript' 카테고리의 다른 글
prettier 설정 (vscode mac) (0) | 2019.11.16 |
---|---|
[JS] 객체 차집합 만들기 예제 코드 (0) | 2019.11.16 |
[JS] forEach, map, filter (0) | 2019.11.16 |
className (0) | 2019.09.17 |
prettier html 적용 끄기(mac vscode) (0) | 2019.09.05 |