>  기사  >  웹 프론트엔드  >  JavaScript 기생 생성자 패턴 및 안전한 생성자 패턴 예제에 대한 자세한 설명

JavaScript 기생 생성자 패턴 및 안전한 생성자 패턴 예제에 대한 자세한 설명

伊谢尔伦
伊谢尔伦원래의
2017-07-27 10:39:031633검색

기생 생성자 패턴

일반적으로 앞서 언급한 패턴 중 어느 것도 적용할 수 없는 경우 기생 생성자 패턴을 사용할 수 있습니다. 이 패턴의 기본 아이디어는 단순히 객체를 생성하는 코드를 캡슐화한 다음 새로 생성된 객체를 반환하는 함수를 생성하는 것이지만, 표면적으로는 이 함수가 일반적인 생성자처럼 보입니다. 아래는 예시입니다.

function Person(name, age, job){
 var o = new Object();
 o.name = name;
 o.age = age;
 o.job = job;
 o.sayName = function(){
 alert(this.name);
 };
 return o;
}
var friend = new Person("Nicholas", 29, "Software Engineer");
friend.sayName(); //"Nicholas"

이 예에서 Person 함수는 새 개체를 만들고 해당 속성과 메서드로 개체를 초기화한 다음 개체를 반환합니다. 이 패턴은 new 연산자가 사용되고 사용된 래퍼 함수를 ​​생성자라고 부르는 점을 제외하면 팩토리 패턴과 완전히 동일합니다. 생성자가 값을 반환하지 않으면 기본적으로 새 객체 인스턴스를 반환합니다.

안전한 생성자 패턴

소위 안전한 객체는 공용 속성이 없고 해당 메서드가 이를 참조하지 않는 객체를 의미합니다. 안정적인 개체는 일부 안전한 환경(이것과 새 개체의 사용이 금지된 곳)에서 사용하거나 다른 응용 프로그램(예: 매시업 프로그램)에 의해 데이터가 수정되는 것을 방지하는 데 가장 적합합니다. 안전한 생성자는 기생 생성자와 유사한 패턴을 따르지만 두 가지 차이점이 있습니다. 첫째, 새로 생성된 개체의 인스턴스 메서드는 이를 참조하지 않으며, 둘째, 생성자는 new 연산자를 사용하여 호출되지 않습니다. 안정적인 생성자의 요구 사항에 따라 이전 Person 생성자를 다음과 같이 다시 작성할 수 있습니다.

아아아아

위 내용은 JavaScript 기생 생성자 패턴 및 안전한 생성자 패턴 예제에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.