javascript - 如何隔离我的 javascript 代码以防止冲突?

标签 javascript

我一直在编写很多 javascript 函数和事件监听器,我想将它们移动到它们自己的命名空间、隔离的地方,当我将它们与其他 javascript 文件连接和缩小时不会发生冲突。

我还是 javascript 的新手,所以这个答案可能有简单的解决方案。我首先创建了一个 javascript 对象:

var MySpecialStuff = {
    init: function(){
        //do everything here
    }
};

然后在我的 html 中,在我想使用它的页面上,我可以初始化这段代码:

<script>
    MySpecialStuff.init();
</script>

但随后 init 方法开始增长,我需要开始将该代码分解成更小的 block ,但我坚持语法以及如何设置私有(private)方法/变量并从内部调用它们init 方法和其他私有(private)方法。我该怎么做?

我的方向是否正确?我还可以/应该采取哪些其他方式来做这类事情?

最佳答案

您正朝着正确的方向前进。您可以使用 module pattern创建一个具有私有(private)成员和方法的对象,如下所示:

var foo = function(){
  var bar = ""; //private

  function funk(){
    //private function    
    return "stuff";
  }

  return{
    getBar: function(){
      return bar;
    },
    init: function(){
      alert(funk());
    },
    randomMember: 0 //public member
  }


}();

只有返回 block 中的内容是公开的,但您可以从返回 block 中调用任何私有(private)方法/访问任何私有(private)方法。

关于javascript - 如何隔离我的 javascript 代码以防止冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6962445/

相关文章:

php - 在将数据发送到操作链接或人工 POST 请求之前解析数据

javascript - RxJS 中的 self 修复错误处理

javascript - 如何根据容器大小设置 maxResolution?

javascript - 单击时更改文本颜色

javascript - 图表 - 如何对依赖资源进行建模?

javascript - 如何在动态生成的元素上触发事件(在mootools中)

javascript - 如何构建匹配破折号/字母数字字符和不连续的 '.' 点字符的自定义正则表达式?

javascript - Reveal-modal 出现后如何调用函数

javascript - Uncaught ReferenceError : ModuleA is not defined

Javascript "for"语法