> 웹 프론트엔드 > JS 튜토리얼 > 객체 지향 방법과 JavaScript로 객체를 생성할 때의 장점과 단점에 대한 자세한 설명

객체 지향 방법과 JavaScript로 객체를 생성할 때의 장점과 단점에 대한 자세한 설명

伊谢尔伦
풀어 주다: 2017-07-26 10:48:11
원래의
1389명이 탐색했습니다.

지식 포인트:
(1) JS 객체 지향 기본 사항: ECMA-262는 객체를 다음과 같이 정의합니다. "속성에 기본 값, 객체 또는 기능이 포함될 수 있는 순서가 지정되지 않은 속성의 모음."
(2) JS에서 객체를 생성하는 방법:
 (a) 팩토리 패턴: 함수를 사용하여 특정 인터페이스로 객체 생성의 세부 사항을 캡슐화합니다. 단점: 팩토리 패턴은 익숙한 개체를 여러 개 생성하는 문제를 해결하지만 개체 인식(즉, 개체의 유형을 아는 방법) 문제는 해결하지 못합니다.

 (b) 생성자 패턴: ECMAScript의 생성자를 사용하여 특정 유형의 객체를 생성할 수 있습니다. 사용자 정의 생성자를 생성하여 사용자 정의 개체 유형의 속성과 메서드를 정의할 수 있습니다. ​​​

 function createPerson(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 person1 = createPerson(“Nicholas”, 29, “Software Engineer”); 
    var person2 = createPerson(“Greg”, 27, “Doctor”);
로그인 후 복사

​ 단점: 생성자를 사용할 때의 주요 문제점은 각 인스턴스에서 각 메서드를 다시 생성해야 한다는 것입니다. 잊지 마세요. ECMAScript의 함수는 객체이므로 함수를 정의할 때마다 객체를 인스턴스화합니다.

  (c) 프로토타입 패턴: 우리가 만드는 모든 함수에는 객체를 가리키는 포인터인 프로토타입 속성이 있으며, 이 객체의 목적은 특정 유형

  과 메소드의 모든 인스턴스에서 공유할 수 있는 속성을 포함하는 것입니다. 프로토타입 객체를 사용하면 모든 객체가 포함된 속성과 메서드를 공유할 수 있다는 장점이 있습니다. 단점: 프로토타입의 모든 속성은 여러 인스턴스에서 공유됩니다. 이러한 유형의 공유는 함수에 매우 적합합니다. 그러나 참조 유형 값이 있는 속성의 경우 문제가 더욱 두드러집니다.
   (d) 생성자 패턴과 프로토타입 패턴의 결합: 사용자 정의 유형을 생성하는 가장 일반적인 방법은 생성자 패턴과 프로토타입 패턴의 결합을 사용하는 것입니다. 생성자 패턴은 인스턴스 속성을 정의하는 데 사용되며 프로토타입 패턴은 메서드 및 공유 속성을 정의하는 데 사용됩니다. ​

 function Person(name, age, job){ 
        this.name = name; 
        this.age = age; 
        this.job = job; 
        this.sayName = function(){ 
        alert(this.name); 
        }; 
      } 
      var person1 = new Person(“Nicholas”, 29, “Software Engineer”); 
      var person2 = new Person(“Greg”, 27, “Doctor”);
로그인 후 복사

위 내용은 객체 지향 방법과 JavaScript로 객체를 생성할 때의 장점과 단점에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿