카테고리 없음
화살표 함수(arrow function)
stella0905
2023. 8. 24. 21:17
화살표 함수란?
일반 function 키워드 대신 화살표(=>)를 사용하여 보다 간략한 방법으로 함수를 선안할 수 있다.
화살표 함수와 일반 함수의 차이
1. this
일반함수
일반 함수는 함수를 선언할 때 this에 바인딩할 객체가 정적으로 결정되는 것이 아니고, 함수를 호출할 떄 함수가 어떻게 호출되었는지에 따라 this에 바인딩할 객체가 동적으로 결정된다.
화살표함수
화살표 함수는 함수를 선언할 떄 this에 바인딩할 객체가 정적으로 결정된다. 화살표 함수의 this는 언제나 상위 스코프의 this를 가리킨다. 또한 call, apply, bind 메소드를 사용하여 this를 변경할 수 없다.
2. 생성자 함수로 사용가능 여부
일반함수는 생성자 함수로 사용할 수 있으나 화살표 함수는 prototype 프로퍼티를 가지고 있지 않기 때문에 사용할 수 없다.
3. arguments 사용 가능 여부
일반 함수 에서는 함수가 실행 될때 암묵적으로 arguments변수가 전달되어 사용되지만 화살표 함수에서는 arguments변수가 전달되지 않는다.
일반함수
function fun() {
console.log(arguments); // Arguments(3) [1, 2, 3, callee: ƒ, Symbol(Symbol.iterator): ƒ]
}
fun(1, 2, 3);
화살표 함수
const arrFun = () => {
console.log(arguments); // Uncaught ReferenceError: arguments is not defined
};
fun(1, 2, 3);