자바스크립트에서 팩토리 함수(Factory Function)란, 객체를 생성하여 반환하는 함수를 말합니다. 객체 지향 프로그래밍에서는 객체를 생성하는 것이 중요한 작업 중 하나이며, 팩토리 함수는 이를 쉽게 구현할 수 있도록 도와줍니다.
팩토리 함수는 보통 객체 리터럴 형태로 객체를 생성하는 것과는 달리, 동적으로 객체를 생성합니다. 팩토리 함수는 매개변수를 받아서 새로운 객체를 생성하고, 이를 반환합니다. 따라서 팩토리 함수를 사용하면 객체 생성에 필요한 로직을 모듈화하고, 재사용성을 높일 수 있습니다.
사용법
예를 들어, 사용자 정보를 가지고 있는 객체를 생성하는 팩토리 함수를 만들어보겠습니다.
function createUser(name, age, gender) {
return {
name,
age,
gender,
sayHello: function() {
console.log(`안녕하세요, ${this.name}입니다.`);
}
};
}
const user1 = createUser("John", 25, "male");
const user2 = createUser("Jane", 27, "female");
user1.sayHello(); // 안녕하세요, John입니다.
user2.sayHello(); // 안녕하세요, Jane입니다.
위의 예시에서 createUser 함수는 이름, 나이, 성별 정보를 받아서 새로운 객체를 생성하고 반환합니다. 이렇게 생성된 객체는 sayHello 메서드를 가지고 있어서 각각의 사용자 이름을 출력할 수 있습니다.
팩토리 함수는 이외에도 객체를 생성하면서 다양한 작업을 할 수 있습니다. 예를 들어, 객체 생성 시 유효성 검사를 수행하거나, 생성된 객체에 초기 값을 할당할 수 있습니다.
팩토리 함수는 생성자 함수와 유사한 역할을 하지만, 생성자 함수는 new 연산자를 사용해서 객체를 생성하고 초기화하며, 팩토리 함수는 함수 호출을 통해 객체를 생성합니다. 또한 생성자 함수는 함수 내부에서 this 키워드를 사용할 수 있지만, 팩토리 함수는 이를 사용하지 않습니다.
팩토리 함수는 코드의 가독성과 유지보수성을 높일 수 있으며, 객체 생성을 쉽게 추상화할 수 있는 방법 중 하나입니다.
'IT > javascript' 카테고리의 다른 글
자바스크립트 클래스(Class) (0) | 2023.04.21 |
---|---|
자바스크립트 생성자 함수(Constructor Function) (0) | 2023.04.20 |
자바스크립트 axios 사용법 (0) | 2023.04.20 |
자바스크립트 fetch 함수 (0) | 2023.04.20 |
HTTP 헤더(header)란? (0) | 2023.04.20 |
댓글