자바스크립트 팩토리 함수

요약:이 자습서에서는 개체를 반환하는 함수인 자바스크립트 팩토리 함수에 대해 알아봅니다.

자바스크립트의 팩토리 함수 소개

팩토리 함수는 새 개체를 반환하는 함수입니다. 다음은 이름이 지정된 사람 개체를 만듭니다john:

Code language: JavaScript (javascript)

산출:

john개체에는firstNamelastName의 두 가지 속성과 전체 이름을 반환하는 하나의 메서드getFullName()이 있습니다.

jane라는 다른 유사한 개체를 만들어야한다고 가정하면 다음과 같이 코드를 복제 할 수 있습니다:

Code language: JavaScript (javascript)

산출:

jane개체는john개체와 동일한 속성 및 메서드를 갖습니다.

생성하려는 개체가 많을수록 더 많은 중복 코드를 복사해야 합니다.

같은 코드를 반복해서 복사하지 않으려면person개체를 만드는 함수를 개발할 수 있습니다:

Code language: JavaScript (javascript)

함수가 개체를 만들 때 팩토리 함수라고 합니다. createPerson()은 새person개체를 반환하기 때문에 팩터리 함수입니다.

다음 코드는createPerson()팩터리 함수를 사용하여johnjohn두 개체를 만듭니다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()를 사용하여 기존 개체를 프로토타입으로 사용하여 개체를 만듭니다.
  • 이 튜토리얼이 도움이 되었습니까?
  • 예 아니오

You might also like

답글 남기기

이메일 주소는 공개되지 않습니다.