2013-05-19 4 views
3

클래스 정의에 대한 일반적인 방법 (Constructor Pattern in Book by Addy Osmani)을 살펴 보았습니다.JS에서 클래스 정의하기 (ES5 대 프로토 타입)

2 가지 방법 난을 참조하십시오

  • 간단한 프로토 타입 : 나는 궁금

    function Person(name) { this.name = name; } 
    Person.prototype.getName = function() { return this.name; } 
    
  • ES5 Object.create, Object.defineProperties

, 왜 나는 심지어 ES5를 고려할 수를 좀 더 복잡한 것처럼 보이는 방법? 이점이 있습니까? 어쩌면 강점 유형 언어와 같은 읽기 전용 속성을 갖는 것이 가장 큰 장점일까요?

답변

3

Object.defineProperties은 속성에 특정 속성을 부여하려는 경우에만 필요합니다. 비 열거 형, 읽기 전용 또는 getters 또는 setter 함수를 사용합니다.

당신이 설명하는 "간단한 프로토 타입"방법이 완벽하게 적합한 정상적인 클래스와 메서드에는 사용할 필요가 없습니다.