나는 며칠 전에 비슷한 질문을하지만 난 여전히 뭔가 잘못하고 것 같아, 그래서이 하나 더 초점을 맞추고 :내 기능이 공개 된 이유는 무엇입니까?
지금까지 내가 이해하고 this book에 따라, 기능privateFunction
이 예정대로
mySingleton
개체 외부에서 사용할 수 없으므로 publicFunction
은이 방법으로 만 호출 할 수 있습니다 (mySingleton.publicFunction
).
그러나 private-function은 내 의지와 의도에 대해 개체 외부에서 사용할 수 있습니다.
왜 그럴까요? 내가 도대체 뭘 잘못하고있는 겁니까?
var mySingleton = new (function (window, document, undefined) {
var privateFunction = function() {
//code
},
mySingleton = {
publicFunction: function() {
//code
}
};
return mySingleton;
})(window, document, undefined);
편집 : 방금 문제가 발견되었습니다. 구문 오류, 얼마나 모욕적입니다.
var mySingleton = new (function (window, document, undefined) {
var self = this;
privateFunction = function() {
//code
},
mySingleton = {
publicFunction: function() {
//code
}
}
return mySingleton ;
})(window, document, undefined);
"다시"쉼표와 세미콜론 민간 방법은 개인하게 교체 : 내가 게시 할 때 나는 지난 밤이 줄을 놓쳤다 라인 2에 세미콜론을 살펴보십시오. 그럼에도 불구하고이 코드를 보면 구문 오류가 발생할 수 있습니다. privateFunction
바로 뒤에 오는 쉼표로 인해이 오류가 발생합니다.
브라우저에서 실행 중이십니까? 공개적으로 생각하는 예를 보여줄 수 있습니까? –
JavaScript에서 실제로 private 함수가 필요한 이유를 실제로 이해하지 못합니다 ... – azz
@Der - 공용 함수의 일부가 아닌 내부 메커니즘이 있기 때문에 어디서나 private 함수가 필요합니다. . – Malvolio