저는 네임 스페이스로 사용하고있는 객체 리터럴을 만들고 있습니다. 객체 리터럴 (네임 스페이스)에는 생성자 함수 MyConstructor가 포함됩니다. 개체 리터럴 내 MyConstructor 프로토 타입을 확장하고 싶습니다. MyConstructor 선언을 끌어 와서 myNamespace 선언 위에 올려 놓으면 MyConstructor가 더 이상 myNamespace에 의해 네임 스페이스가 아닌 것을 제외하면 모두 잘됩니다. 이 작품을 만드는 가장 좋은 방법은? '.'파일의
이 (가) 컴파일되지 않습니다. 이 줄의 내용은 다음과 같습니다.객체의 프로토 타입 선언하기 리터럴
MyConstructor.prototype = {
아래에 제공된 개체 리터럴.
감사합니다, 마이크
var myNamespace = {
a: 3,
b: function (msg) {
alert(this.a);
},
MyConstructor: function(xx) {
this.x = xx;
},
MyConstructor.prototype = {
a: 1,
b: function() {
return true;
}
}
};
업데이트 : 허용되는 솔루션은 작동합니다. 그러나, 나의 질문의 전제는 결함이 있었다. 이 상황에서는 객체 리터럴을 사용하지 않을 것입니다. 왜냐하면 내가 발견 한 것처럼 단위 테스트가 더 어렵 기 때문입니다. 대신, 나는 생성자로 생성 된 일반 객체를 사용하고, 내부에 개인 객체를 넣을 것이다. 또 다른 것은, "자기/즉시 실행 기능", 어떤면에서는 아름답지만 초보자에게 설명하기가 약간 어렵습니다.
귀하와 meouw는 모두 정확했으며 둘 다 실시간으로 응답했지만 답변 중 하나만 선택할 수있었습니다. 둘 다 감사합니다. – Mike