공개 모듈 패턴으로 구조화 된 모듈을 작성했습니다. 여기에는 과부하로 작동하는 하위 모듈이 포함됩니다. 메인 모듈의 몇몇 기능은 서브 모듈을 통해서만 사용자 코드와 함께 사용해서는 안되는 매개 변수를 가지고 있습니다. 하위 모듈에서 매개 변수에 액세스 할 수 있지만 "외부 사용자 코드"를 사용할 수 없게하려면 어떻게해야합니까? 다른 레이어를 만들어야하나요?JS 공개 모듈 패턴 : 사용자 코드에 의해 사용되어서는 안되는 매개 변수
var someNamespace = someNamespace || {};
someNamespace.someModule = (function() {
// _customSiteUrl, _customToken shouldn't be available via usercode
function create(listName, data, _customSiteUrl, _customToken) {
...
}
var XS = (function() {
return {
createXS: function (siteUrl, listName, data) {
...
create(listName, data, siteUrl, token);
}
}
})();
return {
create: create,
XS: XS,
...
}
})();
someNamespace.someModule.create("hi", {}, "https://...", "someHash"); //Should not be possible!!
someNamespace.someModule.create("hi", {}); //Should be used
글쎄, 내가 무슨 뜻인지 이해하지 못했다. Crowes의 답변을 참조하십시오. 시간 내 주셔서 감사합니다. – sandrooco
그것은 기본적으로 다르게 코딩 된 것과 같습니다. Crowes는'userAccessibleCreate' 함수에 공용 매개 변수 (매개 변수, 원하는 경우)를 추가해야합니다. 왜냐하면 작성된 것처럼 arguments 객체를 사용하지 않고 명명 된 매개 변수를 허용하지 않기 때문입니다. – Shilly