ABOUT ME

개발공부를 시작하면서 서툰 공부일지를 써보는 그런 공간

Today
Yesterday
Total
  • 화살표 함수(arrow function)
    카테고리 없음 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);
Designed by Tistory.