본문 바로가기
JavaScript

[JavaScript] 화살표 함수 (Arrow Function)

by oagree0123 2021. 9. 8.

화살표 함수는 ES6부터 사용되는 문법입니다. function을 사용하여 함수를 만드는 것보다 간단하게 함수를 작성할 수 있는 장점이 있습니다. 오늘은 화살표 함수에 대해 알아보겠습니다. \'_'/

 

1. 화살표 함수

먼저, 기존의 함수와 화살표 함수의 작성 방법에 대해 보겠습니다.

var a = function() {
	// 내용
};

var a = () => {
	//내용
};

 

화살표 함수 특징

화살표 함수는 자신의 this, arguments, super 또는 new.target을 바인딩 하지 않습니다. 화살표 함수는 항상 익명 함수 입니다. 화살표 함수는 메소드 함수가 아닌 곳에 적합하기 때문에 생성자로는 사용할 수 없습니다. - MDN

 

2. 화살표 함수의 기본 문법

// 매개 변수가 없는 화살표 함수
var foo = () => {
    console.log("test");
};

// 매개 변수가 있는 화살표 함수
var foo = (a, b) => {
    return a + b;
};
foo(1, 2) // 3

// return이 없는 경우
var foo = (a, b) => {
    a + b;
};
foo(1, 2) // undefined

// 콜백 함수
var nums = [1, 2, 3, 4, 5];
var makeArr = nums.map( x => x + 1);

console.log(makeArr); // [2, 3, 4, 5, 6]

 

3. 화살표 함수 this

함수를 호출하는 방법에 의해 결정되었던 일반 함수의 this와 달리 화살표 함수의 this는 선언되는 시점에 결정되며, 상위 스코프의 this를 가리킵니다. 코드를 통해 보겠습니다.

var name = 'Park';

var test1 = {
    name: 'Kim',
    printName: function() {
        console.log(this.name);
    }
};

test1.printName(); // 'Kim'

var test2 = {
    name: 'Lee',
    printName: () => {
        console.log(this.name);
    }
};

test2.printName(); // 'Park'

왜 이런 결과가 나왔을까요? 위에서 말했듯이 화살표 함수의 this는 상위 스코프의 this를 가리켜 window를 가리키고 있습니다. 따라서 전역 변수 name을 가리키고 Park이라는 값을 보여주게 됩니다.

 

 

'JavaScript' 카테고리의 다른 글

async/await은 왜 쓰는가?  (0) 2022.04.18
[JavaScript] 함수 표현식 VS 함수 선언식  (0) 2022.01.25
[JavaScript] 클로저 (Closure)  (0) 2021.09.08
[JavaScript] 스코프 (Scope)  (0) 2021.09.08
[JavaScript] async/await  (0) 2021.09.06

댓글