JavaScript의 Factory Function과 Constructor Function

객체를 하나씩 직접 만드는 것은 실수입니다.

사용자나 반 친구를 위해 매번 수동으로 객체를 작성하면 코드가 중복됩니다. 사용자가 100명이라면 동일한 로직을 100번 작성해야 합니다. 이는 버그로 이어집니다. 나중에 실수로 속성을 변경하여 애플리케이션을 망가뜨릴 수도 있습니다.

대신 깨끗한 코드를 작성하기 위해 다음 두 가지 패턴을 사용하세요.

  1. Factory Function (팩토리 함수)

실제 공장을 떠올려 보세요. 원재료가 들어가면 완제품이 나옵니다.

팩토리 함수는 매개변수를 받아 새로운 객체를 반환합니다.

Example:

function classFactory(name) {
    return {
        reply() {
            return `${name} is present`
        }
    }
}

장점:

  1. Constructor Function (생성자 함수)

생성자 함수 또한 객체를 생성합니다. new 키워드와 this 키워드를 사용합니다. 관례적으로 생성자 함수는 대문자로 시작합니다.

Example:

function Classmate(name) {
    this.name = name
    this.reply = function() {
        return `${this.name} is present`
    }
}

new를 사용하면 JavaScript가 대신 작업을 수행합니다:

return 문을 작성할 필요가 없습니다.

코드 확장하기

이 패턴들을 배열과 결합하여 대량의 데이터를 처리할 수 있습니다. 모든 이름을 일일이 입력하는 대신 map 함수를 사용하세요.

Example:

const names = ['Kali', 'Andrew', 'Pearl', 'Percy']
const classmates = names.map(name => new Classmate(name))

이제 바로 사용할 수 있는 객체 리스트가 준비되었습니다.

요약:

Source: https://dev.to/pearlodi/factory-functions-and-constructor-functions-in-javascript-lmb