2

考虑到神圣的全局命名空间,我正在尝试为我的网站实现一个 .js 文件。这次我想以正确的方式做到这一点,所以请帮助我解决这个可能太简单的问题:

到目前为止我所拥有的:

var myJSFile = (function () {

  function a (){
  } 
  function b (){   
  }

  return {
    global1 : 0,
    global2 : 0,             

    functionc :  function (){
      a();
    },

    functiond : function () {
      a();
      b();
    }
  }; 
})(); 

你看我想让一个全局变量“ myJSFile ”显示在全局范围内。还有两个私有函数(a,b),两个全局变量(global1, global2)和两个全局函数(functionc, functiond)。这段代码确实有效,但 netbeans 似乎喜欢它。netbeans 在其导航器中向我展示的唯一内容是全局变量“myJSFile”。没有私有,没有公共函数,没有其他变量。我真的需要它,因为会有很多功能。

这让我想,我在做完全错误的事情。所以请给我一些关于如何修复此代码并成为更好的 js 程序员的建议。

提前非常感谢!

编辑:我知道,如何处理这个对象并像这样使用它:

myJSFile.global1 = anything;
myJSFile.functionc();

对我来说,这里的问题是 netbeans 中的导航器,它让我认为我做错了什么,没有向我显示任何内容。

编辑(II):似乎netbeans得到了更新。现在它能够识别功能等等。

4

1 回答 1

0

您正在创建一个对象。因此,您的“公共”功能将是myJSFile对象的属性。所以以下应该工作:

// Public functions
myJSFile.functionc(); // calls a()
myJSFile.functiond(); // calls a() then b()


// Public properties
myJSFile.global1; // 0
myJSFile.global2; // 0

这是module模式的一个例子。您可以在此处阅读更多相关信息!

于 2013-05-24T08:18:23.610 回答