개체의 모든 인스턴스화에 전달 된 config 개체에 영향을주기 위해 한 곳에서 변경하려고합니다. 목적은 var myFoo = new Crayons().foo({color: "red"});
생성자에 전달 된 객체의 기본 속성을 어떻게 설정합니까?
내 프로젝트에 초기화 나는 누군가가 전달하지 않는 경우 있도록 기본을 {color: "blue"}
하고 싶습니다
function Crayons(){
return {
foo: ThirdPartyFoo
}
}
다음과 같이 객체는 전 세계적으로 사용할 수 있습니다 색상, 파란색이 설정됩니다.
나는
function Crayons(){
var fooWithDefaults = function(){
this = new ThirdPartyFoo(arguments); //this is invalid
this.color = "blue"; //and this would overwrite color if it was set
}
return {
foo: fooWithDefaults
}
}
을하고 노력하지만 기본적으로 this = new 3rdPartyFoo
을 말한다 자바 스크립트 생성자를 만드는 방법을 알고하지 않는 한 new
키워드는, 저를 던지고있다.
무엇이 누락 되었습니까?
당신은 생성자를 장식 할 수 있습니다
'this.color =이 || 제공 "blue"' – Li357
@AndrewL. 그 색상에 대해 작동하지만, 여전히 개체를 구성하는 방법을 모르겠습니다. – adamdport
첫째, '크레용'은 진정한 생성자로 구현되는 것이 아니라 공장으로 구현됩니다. 따라서'new' 연산자로 호출 할 필요가 없습니다. 둘째, '크레용'에는 foo 메소드가 없습니다. 이 함수가 호출되면 생성자가 될 수있는'ThirdPartyFoo'를 참조하는 속성'foo'를 특징으로하는 객체를 반환합니다. 적어도 유효한 코드이거나 오류를 발생시키지 않고 실행할 수있는 예제로 수정하십시오 (var myFoo = new Crayons.foo ({color : "red"});))') –