보통 함수표현식(function expression)을 축약한 형태로 표시**
const tester = function (a, b) {
return a * b;
}
const tester = (a, b) => {
return a * b;
}
function키워드를 =>
화살표 표시로 축약해서 표현.
const tester = (a, b) => a * b;
함수 body에 return
문만 존재하는 경우, return
생략 가능. 이 경우 { }
중괄호 사용 안 됨.
위는 정상출력, 아래는 undefined
.
body 내용이 두 줄 이상일 경우, 그냥 return문을 쓰자.
// (1)
const tester = x = y => x + y;
// (2)
const tester = x => {
return y => x + y;
}
// (3)
const tester = function tester (x) {
return function (y) {
return x + y;
}
}
결국 위 3개 다 같은 이야기
화살표 함수의 실행은 this를 결정짓지 않는다.
화살표 함수는 arguments값을 갖고있지 않는다.
call, apply, bind 사용할 수 없음.
정상적으로 this.info
및 arguments
정보 출력 완료.
같이 화살표 함수로 바꿨음에도 불구하고, sum(1, 2)
는 정상출력, this.info
, arguments
정보는 각각 undefined
, ReferenceError
출력.
즉, 화살표 함수는 this값을 가지지 않는다는 것.