생성자 함수(Constructor Function)와 팩토리 함수(Factory Function)는 모두 객체를 생성하는 데 사용되지만, 각각의 방식에는 고유한 특징과 장단점이 있습니다. 이들 방법을 구분하여 사용하는 이유는 코드의 유연성과 목적에 따라 다릅니다.
1. 생성자 함수 (Constructor Function)
function Car(model, year) {
this.model = model;
this.year = year;
}
Car.prototype.start = function() {
console.log(`${this.model} is starting.`);
};
const car1 = new Car('Toyota', 2020);
const car2 = new Car('Honda', 2021);
car1.start(); // "Toyota is starting."
car2.start(); // "Honda is starting."
2. 팩토리 함수 (Factory Function)
function createCar(model, year) {
return {
model: model,
year: year,
start() {
console.log(`${this.model} is starting.`);
}
};
}
const car1 = createCar('Toyota', 2020);
const car2 = createCar('Honda', 2021);
car1.start(); // "Toyota is starting."
car2.start(); // "Honda is starting."
3. 구분하여 사용하는 이유
결론적으로, 생성자 함수는 객체 지향적 설계와 메모리 효율성이 중요한 경우 사용하고, 팩토리 함수는 유연성과 간결성이 필요한 경우 사용합니다.
class 구조 - TypeScript (1) | 2024.08.30 |
---|---|
Object (객체) 만드는 7가지 방법 (0) | 2024.08.16 |
순환 참조 , circular reference (0) | 2024.08.16 |
얕은 복사, 깊은 복사, shallow copy, deep copy (0) | 2024.08.16 |
연관 배열, associative array, 순차 배열, sequential array, 인덱스 배열 indexed array (1) | 2024.08.15 |