JavaScript - 提取函数并保持其私有

2024-01-11

目前我有这样的结构:

(function(myScope) {
  myScope.public = function() {alert("I'm public!")};
  myScope.privileged = function() {alert("I can call private!"); private();};
  var private = function() {alert("I'm private!")};
})(window.myObj);

效果很好。private无法从外部世界访问,而privileged可以调用它。但现在私处太大了,我希望能把它拔出来。我想让它无法从外部访问,但它需要由特权函数调用。有办法实现吗?

UPDATE:

以上只是一个例子。普遍的问题是,随着应用程序的扩展,单个 js 文件会变得很长且难以管理。目标是将此类 js 文件拆分为模块,而不损害隐私。


您需要将代码分解为更小的部分。对于每件事,您可能希望将实例引用设为本地范围,但您可以从不同的文件导入类/代码/功能。

将示例分解为三个文件:

function makeAlerter(state) {
  return function() {
    alert("I'm "+state);
  };
}

(function(myScope) {
  var private = makeAlerter("private"); // not the whole private coding here
  myScope.privileged = function() { // but the privileged code needs to stay
    alert("I can call private!"); private();
  };
})(window.myObj);

(function(myScope) {
  myScope.public = function() {alert("I'm public!")};
})(window.myObj);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript - 提取函数并保持其私有 的相关文章

随机推荐