요약:이 자습서에서는 개체를 반환하는 함수인 자바스크립트 팩토리 함수에 대해 알아봅니다.
자바스크립트의 팩토리 함수 소개
팩토리 함수는 새 개체를 반환하는 함수입니다. 다음은 이름이 지정된 사람 개체를 만듭니다john
:
Code language: JavaScript (javascript)
산출:
john
개체에는firstName
와lastName
의 두 가지 속성과 전체 이름을 반환하는 하나의 메서드getFullName()
이 있습니다.
jane
라는 다른 유사한 개체를 만들어야한다고 가정하면 다음과 같이 코드를 복제 할 수 있습니다:
Code language: JavaScript (javascript)
산출:
jane
개체는john
개체와 동일한 속성 및 메서드를 갖습니다.
생성하려는 개체가 많을수록 더 많은 중복 코드를 복사해야 합니다.
같은 코드를 반복해서 복사하지 않으려면person
개체를 만드는 함수를 개발할 수 있습니다:
Code language: JavaScript (javascript)
함수가 개체를 만들 때 팩토리 함수라고 합니다. createPerson()
은 새person
개체를 반환하기 때문에 팩터리 함수입니다.
다음 코드는createPerson()
팩터리 함수를 사용하여john
및john
두 개체를 만듭니다jane
:
Code language: JavaScript (javascript)
팩토리 함수를 사용하면 코드를 복제하지 않고 원하는 개수의person
개체를 만들 수 있습니다.
개체를 만들 때 해당 개체는 메모리에 공간이 필요합니다. 1,000 개의person
개체가 있는 경우 이러한 개체를 저장하려면 메모리에 1,000 개의 공백이 필요합니다. 그러나 이러한 사람 개체는 동일한getFullName()
방법을 사용합니다.
메모리에서 같은getFullName()
함수를 반복하지 않으려면person
개체에서getFullName()
메서드를 제거할 수 있습니다:
Code language: JavaScript (javascript)
이 방법을 다른 개체로 이동하십시오:
Code language: JavaScript (javascript)
그리고person
개체에서getFullName()
메서드를 호출하기 전에behavior
개체의 메서드를person
개체에 다음과 같이 할당할 수 있습니다:
Code language: JavaScript (javascript)
그것은 당신이 많은 방법을 가지고 수동으로 할당해야하는 경우 더 어려운 것입니다.
이것이Object.create()
방법이 작동하는 이유입니다.
객체.()만들기 방법
Object.create()
메서드는 기존 개체를 새 개체의 프로토타입으로 사용하여 새 개체를 만듭니다:
Code language: CSS (css)
따라서Object.create()
를 다음과 같이 사용할 수 있습니다:
Code language: JavaScript (javascript)
이제person
개체를 만들고behavior
개체의 메서드를 호출할 수 있습니다:
Code language: JavaScript (javascript)
코드는 완벽하게 잘 작동합니다. 그러나 실제로는 공장 기능을 거의 볼 수 없습니다. 대신 함수 생성자 또는 클래스가 표시됩니다.
요약
- 팩토리 함수는 새 개체를 반환하는 함수입니다.
Object.create()
를 사용하여 기존 개체를 프로토타입으로 사용하여 개체를 만듭니다.
- 이 튜토리얼이 도움이 되었습니까?
- 예 아니오