下面是我的模块模式。
var Application = (function ($, window, undefined) {
}(jQuery, window));
有什么方法可以将我的其他类/对象作为参数加载?例如,如果我在 Utils
目录中有一个名为 Helper.js
的文件,这又是一个模块模式。我可以像下面那样将它作为 argument
传递并在我的 Application 类中使用它,这样我就可以避免在我的类中使用 global 变量。
var Application = (function ($, window, undefined) {
}(jQuery, window, Helper));
最佳答案
如果您将 Helper
定义为局部变量(使用 var
),它不会弄乱全局范围。
<script type="text/javascript">
var Helper = (function() {
var helper = { ... };
return helper;
}());
</script>
<script type="text/javascript">
var Application = (function ($, window, helper) {
}(jQuery, window, Helper));
<script>
了解有关全局变量的更多信息:Difference between variable declaration syntaxes in Javascript (including global variables)?
实现模块模式的一个好工具是使用模块加载器,查看RequireJS
关于javascript - 将对象/类作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23648291/