2012-11-13 5 views
-1

Javascript에서 프로토 타입으로 속성을 재정의하는 방법은 무엇입니까?프로토 타입으로 속성을 재정의하는 방법

코드

function Test(){ 
    this.prop = false; 
} 

Test.prototype.prop = true; 

var T = new Test(); 
console.log(T.prop); 

false 반환하지만 true를 반환해야?

+0

아니, 안. [this] (https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Inheritance_and_theprototype_chain)를 읽으십시오. –

+0

어떻게 할 수 있습니까? – clarkk

+1

수 없습니다. 그것은 프로토 타입을위한 것이 아닙니다. 당신은 틀린 질문을하거나 당신이 이해하지 못하는 것을하려고합니다. 거의 모든 시스템에서 가장 구체적인 옵션이 우선시되고 그 반대를 원합니다. –

답변

0

t 속성의 값을 변경해야 할 경우 개체의 인스턴스에서 속성에 직접 액세스하거나 생성자에서 지정하십시오.

직접 액세스는

var T = new Test(); 
t.prop = false; 
console.log(T.prop); 

생성자

function Test(prop){ 
    this.prop = prop; 
} 

var T = new Test(false); 
+0

개체를 만들기 전에 속성을 변경해야합니다. – clarkk

0

생성자는 프로토 타입 복사 한 후 실행됩니다. 프로토 타입을 사용하여 생성자가 설정 한 속성을 재정의 할 수 없습니다.

하지만 당신이 정말로 이렇게 할 경우, 당신은이 작업을 수행 할 수 있습니다

function Test(){ 
    if (this.prop === undefined) { 
     this.prop = false; 
    } 
} 
관련 문제