Javascript 模块模式帮助

标签 javascript module design-patterns javascript-framework

我遇到的问题是一个文件中有一组变量值/属性,另一个文件中有一个库。我已经开始重构代码,但仍然需要以不同的方式保留变量值(动态)和库(静态)。

我正在使用命名空间,并且总体上只需要一个全局命名空间。

目前我遇到的问题: 1. 如何才能保留一个全局命名空间 2. 从一个文件读取值并在另一个文件中的库中使用它的最佳方法是什么。

例如我想出了类似的东西

//File ONE with values 
var main.dynamicvalues = (function(){ 
    var a = 10,
    b = 20,
    c = 30;
    return {
        a:a,
        b:b,
        c:c
    }
}());


//File TWO with core Library
var main.library = (function(){ 
    //Various Private functions that need to use a,b,c variables from above main.dynamicvalues namespace

    return {
        //Public functions again need to use a,b,c from above namespace.
    }
}());

有没有一种方法可以让我拥有一种模式,以便我只保留一个全局命名空间,并且可以直接引用变量,而不必使用 maincode.values.a、maincode.values.b、maincode.values.c 或类似的东西这在 maincode.library.functions 中

谢谢 斯帕什·古普塔

最佳答案

这种方法稍微好一点,但并不完全是您想要的。

var main = {};

main.dynamicvalues = (function() {
 // same as before
})();


main.library = (function(dyn){   
        // use dyn.a, dyn.b etc

        return {

            // same in here
        }
    }(main.dynamicvalues));

关于Javascript 模块模式帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6855782/

相关文章:

dll - Compaq Visual Fortran 6.6、动态链接库 (DLL) 和模块

ruby - 何时在 Ruby 中使用 `require` 、 `load` 或 `autoload` ?

java - 如何为另一个类创建代理类而不重复所有功能

javascript - 是否可以在返回时解决 promise ?

javascript - 在表单上隐藏成功和错误消息

javascript - p5.play - 与 Sprite 一起旋转对撞机

javascript - 仅实例化一个 javascript 模块一次

javascript - 使用 extjs 显示浏览器特定的日期/时间

javascript - Node.js 中 ES6 模块的内联导入

Scala 向类添加可堆叠属性