JavaScript에서 팩토리 패턴과 생성자 패턴의 차이점.
9963 단어 javascriptbeginners
추상화 논리는 발생할 수 있는 반복을 피하기 위해 사용할 수 있는 전략입니다.
이 기사가 끝날 때까지 방법을 배웠을 것입니다.
공장 패턴
프로그래밍의 팩토리는 객체를 반환하는 함수를 설명합니다...
function myFunc() {
let obj = {};
return obj;
}
const newObj = myFunc();
팩토리는 반환하는 개체에 대한 속성 및 메서드를 설정하는 데 사용할 수 있습니다. 아래 코드 조각에서
makeAnimal 함수는 동물을 나타내는 다른 개체를 만드는 데 사용됩니다. 팩토리를 사용할 때 속성 값은 함수의 인수를 통해 반환된 객체에 할당됩니다.function makeAnimal(name, legs, horns) {
let animal = {};
// Set properties for the animal object
animal.name = name;
animal.legs = legs;
animal.horns = horns;
return animal;
}
const newAnimal = makeAnimal('Cow', 4, 2);
console.log(newAnimal.name); // Output: Cow
console.log(newAnimal.legs); // Output: 4
console.log(newAnimal.horns); // Output: 2
반환할 개체의 속성에 대한 기본값을 만드는 데에도 팩토리를 사용할 수 있습니다.
function makeAnimal(name: string, legs: number, horns: number) {
let animal = {};
// Set properties for the animal object
animal.name = name;
animal.legs = legs;
animal.horns = horns;
animal.hasFur = true; //Every new object returned from this function will have the `hasFur` property and it's value will always be true unless it's changed.
return animal;
}
t
const newAnimal = makeAnimal('Cow', 4, 2);
console.log(newAnimal.name); // Output: Cow
console.log(newAnimal.horns); // Output: true
생성자 패턴
이것은 자바 스크립트에서 객체를 생성하는 데 사용되는 또 다른 패턴입니다. 팩토리와 마찬가지로 생성자는 객체를 반환하는 함수입니다.
당신은 또한 선언 할 수 있습니다
아래 코드 조각을 참조하십시오.
function Animal(name: string, legs: number, horns: number) {
// Set properties for the animal object
this.name = name;
this.legs = legs;
this.horns = true; //Default property
}
const newAnimal = new Animal('Cow', 4, 2);
console.log(newAnimal.name); // Output: Cow
또는 구문 설탕을 사용하여 Javascript에서 생성자를 선언하는 더 멋진 방법이 있습니다.
class Animal {
constructor(legs) {
this.legs = legs;
this.printLegs = function () {
console.log('Animal has %d legs:', this.legs);
},
this.name = 'Animal';
}
}
let animal = new Animal(4);
animal.printLegs();
//Output : Animal has 4 legs
생성자와 팩토리의 차이점
팩토리는
new 키워드를 사용하지 않는 반면 생성자는 사용합니다. 위의 예를 참조하십시오. true에서 instanceOf factoryFunction를 반환합니다.반면에 팩토리는
prototype 속성에 대한 참조를 상속하지 않고 false에서 instanceOf factoryFunction를 반환합니다. Reference
이 문제에 관하여(JavaScript에서 팩토리 패턴과 생성자 패턴의 차이점.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/morelmiles/differences-between-the-factory-pattern-and-the-constructor-pattern-in-javascript-382b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)