Javascript에서 프로토 타입으로 속성을 재정의하는 방법은 무엇입니까?프로토 타입으로 속성을 재정의하는 방법
코드
function Test(){
this.prop = false;
}
Test.prototype.prop = true;
var T = new Test();
console.log(T.prop);
이 false
반환하지만 true
를 반환해야?
Javascript에서 프로토 타입으로 속성을 재정의하는 방법은 무엇입니까?프로토 타입으로 속성을 재정의하는 방법
function Test(){
this.prop = false;
}
Test.prototype.prop = true;
var T = new Test();
console.log(T.prop);
이 false
반환하지만 true
를 반환해야?
t 속성의 값을 변경해야 할 경우 개체의 인스턴스에서 속성에 직접 액세스하거나 생성자에서 지정하십시오.
직접 액세스는
var T = new Test();
t.prop = false;
console.log(T.prop);
생성자
function Test(prop){
this.prop = prop;
}
var T = new Test(false);
개체를 만들기 전에 속성을 변경해야합니다. – clarkk
생성자는 프로토 타입 복사 한 후 실행됩니다. 프로토 타입을 사용하여 생성자가 설정 한 속성을 재정의 할 수 없습니다.
하지만 당신이 정말로 이렇게 할 경우, 당신은이 작업을 수행 할 수 있습니다
function Test(){
if (this.prop === undefined) {
this.prop = false;
}
}
아니, 안. [this] (https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Inheritance_and_theprototype_chain)를 읽으십시오. –
어떻게 할 수 있습니까? – clarkk
수 없습니다. 그것은 프로토 타입을위한 것이 아닙니다. 당신은 틀린 질문을하거나 당신이 이해하지 못하는 것을하려고합니다. 거의 모든 시스템에서 가장 구체적인 옵션이 우선시되고 그 반대를 원합니다. –