내가이 문제의 문제는 내가 만들 때마다 것입니다이 방법은 잘 작동하지만
var myClass = function(){
var private_field1,private_field_2;
var private_func1 = function(){
//.......
}
//.........
var myObj = {
global_field1:2,
global_field2:"something",
global_func: function(){//......}
}
return myObj;
};
var obj = myClass();
아래의 코드를 사용하여 모듈 패턴 private 멤버 필드를 정의 할 수 있습니다 자바 스크립트 모듈 패턴으로 개인 필드 회원과 상속 정의 새로운 객체 모든 기능의 복사본을 만들고
I 이하의 다른 방법을 사용하는 시도 (동일한 클래스 주 같은 함수 메모리의 모든 오브젝트는 어디에 자바 싫어) 메모리에로드되어
var myClass = (function(){
var private_field1,private_field_2;//private static fields
var private_func1 = function(){
//.......
}
//.........
var Constr = function(){
//do something
}
Constr.prototype = {
//................
global_func: function(){//......}
}
return Constr;
}());
var obj1 = new myClass();
var obj2 = new myClass();
하지만이 방법의 문제는 분명히 obj1, obj2가 동일한 개인 필드를 공유한다는 것입니다 (따라서 실제로는 정적입니다). 그렇다면 객체의 동일한 함수 복사본을 사용하면서 모듈 패턴으로 private 필드를 정의하는 방법이 있습니까?
위에서 언급 한 첫 번째 방법에 대한 상속을 위해 먼저 하위 클래스 내부에서 개체를 만든 다음 해당 개체를 반환해야합니다.
var ChildClass = function(){
var childobj = myClass();
//override or add functions to childobj
return childobj ;
}
그러나이 효과적으로 단지 ChildClass에에 BaseClass로의 목적을 포장, 그것은 보호, 개인과 진정한 자바 상속과 같은 역할을 할 수 있도록 (제 1 또는 제 2 방법) 같은를 구현하는 다른 방법이 있나요, 등 방법?
가능한 중복 http://stackoverflow.com/questions/3617139/private-variables-in -inherited-prototypes) – Bergi