2014-04-08 2 views
0

편집 수정 한 것 객체 인스턴스화 : 내가 추가 할 필요가자바 스크립트 -이 속성

var Person = Person(age) { this._age = living; }; 

내가 런타임 중에 발견 : 난 내 자신의 사용자 정의 개체를 만드는 생성자를 만들 말을 이 생성자에 의해 생성 된 객체는 또 다른 속성이므로이 속성을 사용하여 프로토 타입을 추가합니다.

Person.prototype.alive; 

지금 내 유일한 생성자는 1 개의 val 만 가져오고, 동일한 생성자를 다른 val로 보낼 수 있습니까? 처럼 말하십시오. var newPerson = Person (20, 'yes); 당신은 생성자에 다른 매개 변수를 전달 고려하는 경우

+1

이 클래스 생성자 값을 보내시겠습니까? – Sarath

+3

질문과 예제 모두 이해할 수 없습니다. _object_를 생성하고 _constructor_를 작성하여이를 보여주는 것에 대해 설명합니다. 인수를 무시하면서 상기 생성자에서 정의되지 않은 변수를 사용합니다. 그러면 "값을이 생성자에게 보냄"에 대해 이야기합니다. 이는 아무 의미가 없습니다. 질문을 편집하고 문제를보다 명확하게 설명하십시오. – lanzz

+0

[프록시] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy "프록시 - JavaScript | MDN")가 필요합니다. 불행히도 그들은 JavaScript로 아직 구현되지 않았습니다. 당신의 유스 케이스는 무엇입니까? 나는 당신의 문제를 해결하는 더 쉬운 방법이 있어야한다고 확신합니다. –

답변

0

is it possible to send that same constructor another val? say something like var newPerson = Person(20,'yes');

아니요 오직 하나 개의 매개 변수를 사용 않습니다이 생성자에 동의 우호적 쓰기 생성자 것입니다.

할 수 있습니다 그러나 redefine the constructor, 귀하의 경우 :

이 이전에 생성 된 기존의 객체가 자동적으로 새 값을 할당받을 것
Person = (function (original) { 
    function Person(age, alive) { 
     original.call(this, age);   // apply constructor 
     this.alive = alive;    // set new property from new parameter 
    } 
    Person.prototype = original.prototype; // reset prototype 
    Person.prototype.constructor = Person; // fix constructor property 
    return Person; 
})(Person); 

알 수 있습니다. 알고있는 모든 이전 인스턴스에 대해 명시 적으로 oldPerson.alive = 'no';과 같이 설정해야합니다.

0

, 하나의 객체 지정자에게

function Person({paramZ: val, paramX: val})