[javascript] 애로우 함수와 생성자 함수
자바스크립트에서 함수는 다양한 형태로 정의할 수 있습니다. 그중에서 애로우 함수와 생성자 함수는 다른 기능과 사용법을 가지고 있습니다. 이번 포스트에서는 두 함수의 차이점에 대해 알아보도록 하겠습니다.
애로우 함수 (Arrow Function)
애로우 함수는 ES6에서 도입된 새로운 함수 문법입니다. 가장 큰 특징은 함수를 간결하게 정의할 수 있다는 것입니다.
애로우 함수는 다음과 같은 형태로 정의됩니다.
const add = (a, b) => a + b;
애로우 함수는 항상 익명 함수로 정의되며, function
키워드를 사용하지 않습니다. 또한 this
값을 정적으로 가지고 있어서, 함수가 호출된 컨텍스트에 관계없이 항상 상위 스코프의 this
값을 가리킵니다.
생성자 함수 (Constructor Function)
생성자 함수는 객체를 생성하는데 사용되는 함수입니다. 생성자 함수를 사용하여 새로운 객체를 만들 때에는 new
키워드를 사용합니다.
생성자 함수는 다음과 같은 형태로 정의됩니다.
function Person(name, age) {
this.name = name;
this.age = age;
}
애로우 함수와 생성자 함수의 차이점
-
this 바인딩: 애로우 함수는 자신의
this
를 가지지 않고, 상위 스코프의this
를 가리키지만, 생성자 함수는this
를 가지며 동적으로 바인딩됩니다. -
new 키워드 사용: 애로우 함수는 생성자 함수로 사용될 수 없으며,
new
키워드로 객체를 생성할 수 없습니다. 반면에 생성자 함수는new
키워드로 객체를 생성하는데 사용됩니다. -
사용 목적: 애로우 함수는 주로 콜백 함수나 간단한 함수를 정의할 때 사용되며, 생성자 함수는 객체를 생성하고 초기화할 때 사용됩니다.
애로우 함수와 생성자 함수는 각각 다른 용도로 사용되며, 그에 따라 각각의 특징을 잘 이해하고 활용하는 것이 중요합니다.