Factory function
함수가 객체를 반환할 때 이것을 factory function 이라고 부릅니다.
여기서 객체를 반환한다고 해서 팩토리 함수는 클래스나 생성자 함수가 아닙니다.
Javascript 에서는 모든 함수가 객체를 반환할 수 있습니다.
이 때 new
키워드가 없으면 팩토리 함수입니다.
팩토리 함수는 클래스와 new
키워드의 복잡함 없이 객체 인스턴스를 쉽게 생성할 수 있습니다.
팩토리 함수명으로 create 접두사를 붙여주면 명확하게 함수 의도를 전달해줄 수 있습니다.
객체를 반복해서 생성해야 하는 경우 객체 리터럴과 팩토리 함수의 기능을 결합해야 합니다.
예를 들어 나를 제외한 다른 사용자들을 나타낼 때 많은 사용자 객체가 필요할 때 객체 리터럴과 팩토리 함수의 기능을 결합할 수 있습니다.
const name = "hyesik";
const age = 23;
const user = {
name,
age,
setUserName (name) {
this.name = name;
return this;
}
};
const createUser = ({name, age}) => ({
name,
age,
setUserName (name) {
this.name = name;
return this;
}
});
console.log(createUser({ name: "sikhye", age: 32 }));
// {name: "sikhye", age: 32, setUserName: f};
위 예제와 같이 객체를 반복해서 생성해야 할 때 객체 리터럴과 팩토리 함수의 기능을 결합할 수 있습니다.
화살표 함수는 암시적인 리턴을 합니다.
객체 리터럴을 반환하려고 할 때 주의해야 할 점은
중괄호 바깥을 괄호로 감싸주어야 합니다.
const createSik = () => {name: "sikhye"};
console.log(createSik()); // undefined
const createSik = () => ({ name: "hyesik" });
console.log(createSik()); // {name: "hyesik"}
Author And Source
이 문제에 관하여(Factory function), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gptlr9982/Factory-function저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)