본문 바로가기
javascript

자바스크립트에서 화살표 함수(lambda)와 익명 함수의 차이점

by chunkind 2024. 5. 24.
반응형

자바스크립트는 다양한 방식으로 함수를 정의할 수 있는 유연성을 제공합니다. ES6에서 도입된 화살표 함수는 간결한 문법과 몇 가지 고유한 특성으로 인해 매우 인기를 얻고 있습니다. 이 글에서는 화살표 함수와 익명 함수의 주요 차이점을 알아 보겠습니다.


1. 문법 차이

화살표 함수는 기존의 function 키워드를 사용하는 함수보다 훨씬 간결한 문법을 제공합니다. 예를 들어, 두 수를 더하는 간단한 함수는 다음과 같이 다르게 표현될 수 있습니다.

일반 함수:

let add = function (x, y) {
    return x + y;
}


화살표 함수:

let add = (a, b)=>{
	return a + b
}


2. this 바인딩의 차이

일반 함수는 호출될 때마다 this의 값이 함수의 호출 방식에 따라 결정됩니다. 반면, 화살표 함수는 자신이 생성된 컨텍스트의 this 값을 "상속" 받습니다. 따라서 화살표 함수는 종종 콜백 함수로 사용될 때 유용하며, this가 예측 가능하게 유지됩니다.

 

3. 객체 생성자 사용의 제한

화살표 함수는 prototype 속성이 없으며 new 키워드를 통해 객체를 생성할 수 없습니다. 이는 화살표 함수가 생성자 함수로서의 역할을 하지 못한다는 것을 의미합니다.

 

4. arguments 객체의 부재

일반 함수에서는 함수 내부에서 arguments 객체를 사용하여 호출 시 전달된 인자들에 접근할 수 있습니다. 하지만, 화살표 함수에서는 arguments 객체가 없으며, 필요한 경우 나머지 매개변수(rest parameters)를 사용해야 합니다.

 

5. 명시적 return의 유무

단일 표현식으로 구성된 화살표 함수는 중괄호와 return 키워드 없이 결과를 자동으로 반환합니다. 복잡한 로직을 포함한 함수에서는 중괄호를 사용해야 하며, 이 경우 return 키워드가 필요합니다.

 

결론

화살표 함수와 일반 함수는 자바스크립트에서 각각의 장점과 적절한 사용 상황이 있습니다. 화살표 함수는 간결한 문법과 고정된 this 바인딩으로 인해 특히 콜백 함수나 함수형 프로그래밍에 적합합니다. 반면, 일반 함수는 더 전통적인 기능과 유연성을 제공하여 객체 지향 프로그래밍 또는 메서드 정의에 더 적합할 수 있습니다.

자바스크립트를 사용하는 개발자라면 이러한 차이점을 이해하고 상황에 맞게 적절한 함수 유형을 선택하는 것이 중요합니다.

반응형