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.)