Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript名称空间和私有模块_Javascript_Namespaces_Private - Fatal编程技术网

Javascript名称空间和私有模块

Javascript名称空间和私有模块,javascript,namespaces,private,Javascript,Namespaces,Private,这是一个JS新手问题,我正在处理一个父命名空间库,并且我将所有代码都包含在这个命名空间中 文件model.js Base = {} Base.Observer = { method1 : function(){//...}, method2 : function(){//...} }; Base.Bot = function(name){ this.name = name; this.somefunc = function(){}; } 基={} 基本观察者={

这是一个JS新手问题,我正在处理一个父命名空间库,并且我将所有代码都包含在这个命名空间中

文件model.js

Base = {} Base.Observer = { method1 : function(){//...}, method2 : function(){//...} }; Base.Bot = function(name){ this.name = name; this.somefunc = function(){}; } 基={} 基本观察者={ 方法1:函数(){/…}, 方法2:函数(){/…} }; Base.Bot=函数(名称){ this.name=名称; this.somefunc=函数(){}; } 文件presenter.js

Base.Presenter = { } Base.Presenter={ } 文件helper.js

Base.Helper = { }; Base.Helper={}; 现在我的问题是我想保持这个模块的私密性。不允许任何用户通过firebug等浏览器工具进行访问。因此,我只能考虑将它们包装在一个自动执行的匿名函数中,并将Base变成一个局部变量,这将导致presenter.js和helper.js无法访问基名称空间

我希望将文件分开,因为这有助于保持代码的条理化,但我似乎不知道什么是正确的方法。如果您能在这方面提供帮助,我将不胜感激

多谢各位

所以我只能考虑将它们包装在一个自动执行的匿名函数中,并将Base变成一个局部变量

这是通常的做法

这将导致presenter.js和helper.js无法访问基本命名空间

函数应该
返回Base然后将其分配给全局