[JavaScript] arrow function(화살표 함수) 이란 무엇인가?

2021. 6. 22. 21:33·JavaScript
반응형

Arrow function / ()=>

Arrow function

ES6 문법 중 하나

this, arguments, super 또는 new.target을 바인딩하지 않음

항상 익명
 
메소드 함수가 아닌 곳에 적합 - 생성자로 사용할 수 없음.

Arrow function 선언

// 함수 표현식 
function() { ... } 

// 화살표 함수 표현식 
() => { ... }​

// 매개변수 지정 방법
() => { ... } // 매개변수가 없을 때
num => { ... } // 매개변수가 하나일 때, 소괄호 생략 가능

// implicit return → 함수와 return 식이 한줄이면, 중괄호{}를 생략하고 암묵적으로 return 된다.
num => { return num++ }
num => num++              // 위 표현과 동일

() => { return { x : 1 } ; }
() => ({ x : 1 })       // 위 표현과 동일, 소괄호()를 사용하여 return

Arrow function 호출

const arr = [1,2,3]
const useMap = arr.map(num => num + num);

console.log(useMap); // [2, 4, 6]

This를 바인딩 하지 않음

콜백 함수 내부의 this는 전역 객체인 window를 가리킴.

  <body>
    <button>Click me</button>
    <div>Click me</div>
    <script>
      const button = document.querySelector("button");
      const div = document.querySelector("div");

      button.addEventListener("click", function () {
        console.log(this); // <button>button</button>
      });

      div.addEventListener("click", () => {
        console.log(this); // Window obj
      });
    </script>
  </body>

메소드 함수가 아닌 곳에 적합

메소드(Method) : Object {객체} 안에서의 함수식을 메소드라 표현한다.
(일반 함수와 구분하기 위함)
const obj = {
    num : 10,
    b : ()=> {
        console.log(this.num) // this는 window
    },
    c : function() {
        console.log(this.num) // this는 obj
    }
}

obj.b() //undefined
obj.c() //10

 

반응형
저작자표시 (새창열림)
'JavaScript' 카테고리의 다른 글
  • [JavaScript] 'Destructuring - 구조 분해 할당'이란 무엇인가? (ES6)
  • [JavaScript] import (상대경로 → 절대경로) path 설정 방법
  • [JavaScript/Array] 배열(Array)에서 forEach, filter, map 특징과 사용법
  • [Javascript] HTML에 Font Awesome 아이콘 출력하기
꾸매코더
꾸매코더
웹 / 앱 개발자
  • 꾸매코더
    꾸매코딩
    꾸매코더
  • 전체
    오늘
    어제
    • 분류 전체보기 (96)
      • JavaScript (18)
        • Deep Dive (0)
      • React (5)
      • React-Native (9)
      • CSS (3)
      • TypeScript (1)
      • CS (10)
      • GitHub (4)
      • Clone Coding (15)
        • Kakaotalk [HTML + CSS] (10)
        • Momentum [JavaScript] (5)
      • Project (30)
        • Timer Project (14)
        • Netflix [React + Hooks] (12)
        • ToDoList [React-Native] (4)
      • 회고 (1)
  • 링크

    • Github
  • hELLO· Designed By정상우.v4.10.3
꾸매코더
[JavaScript] arrow function(화살표 함수) 이란 무엇인가?
상단으로

티스토리툴바