핵심: 화살표 함수는 자신이 선언된 컨텍스트의 this를 그대로 상속 받는다.
실천: 메소드에는 화살표 함수를 쓰지 않는다.
const arrow() => { // 화살표 함수
console.log(arguments);
console.log(this);
}
function normal() { // 일반 함수
console.log(arguments);
console.log(this);
},
일반 함수는 어디서 쓰였는지에 따라 this가 달라진다.
그러나 화살표 함수는 선언할 때 상위 스코프의 this를 그대로 사용한다.
일반 함수는 arguments 객체를 가지고 있다.
그러나 화살표 함수는 arguments가 없다.
대신 ...args 같은 스프레드 문법을 사용할 수 있다.
인수 처리를 더 명시적이고 직관적으로 하는 방법이라고 생각된다.
그래서 간결하고 최신인 화살표 함수를 사용할까 한다.
단 this가 사용될 수 있는, 또는 문맥이 중요한 메소드의 경우 일반 함수 사용하자.