나는 OOP JS에 developer.mozilla.org 가이드를 읽고이 조각 건너 온 한 (성) 이미 this.gender로 정의되면 내가 이해하지 못하는JavaScript OOP 프로토 타입이 생성자 외부입니까?
function Person(gender) {
this.gender = gender;
}
Person.prototype.gender = '';
Person.prototype.sayHello = function() {
alert ('hello');
};
var person1 = new Person('Male');
var person2 = new Person('Female');
// call the Person sayHello method.
person1.sayHello(); // hello
; 왜 우리는 Person.prototype.gender = ''; 선? 생성자가 아닌 함수의 경우에는이 함수를 이해하지만 해당 행이 this.gender를 반복하는 것처럼 보입니다. 선. 나는 성 (gender)을 Person() 객체의 속성으로 생성한다는 것을 이해하지만, this를 반복하지 않습니다. gender?
나는 모든 설명을 주시면 감사하겠습니다. 저는 OOP JS를 처음 사용합니다. 감사!
을 요구하는 기본을 정의하는 데 도움이 될 수 있습니다, 당신은 필요가 없습니다 그것. 보통 프로퍼티가 조건부로 만 생성되고 그렇지 않으면 프로토 타입에서 기본값을 상속하는 경우에만 이러한 작업이 수행됩니다. – Bergi
정말로 기술적이며 직접 질문과 관련이 없지만 다음과 같이 관심을 가질 수 있습니다. [공간을 절약하기 위해 프로토 타입에 속성의 기본값을 두어야합니까?] (http://codereview.stackexchange.com/questions/28344/) should-i-put-default-values-of-the-prototype-to-save-space)를 사용하면됩니다. –