Module Javascript

Module Javascript

本文关键字:Javascript Module      更新时间:2023-09-26

我想知道,是否可以将此代码更改为只调用MyModule.RED而不使用MyModule.COLORS.RED。我尝试将mod作为存储颜色的变量,但似乎不起作用。是我做错了吗?

(function() {
    var mod;
// Create the global, and also give ourselves a convenient alias for it (`mod`)
window.MyModule = mod = {};
// Colors
mod.COLORS = {
    RED: "#FF0000",
    BLUE: "#0000FF",
    // ...
    GREEN: "#00FF00"
};
mod.testQuery = MyModule_testQuery;
function MyModule_testQuery() {
    // Do something
}
})();
alert(MyModule.COLORS.RED); // #FF0000
 MyModule.testQuery();       // Do something

编辑

(function() {
    var mod;
// Create the global, and also give ourselves a convenient alias for it (`mod`)
window.MyModule = mod = {};
// Colors
mod.COLORS = {
    RED: "#FF0000",
    BLUE: "#0000FF",
    // ...
    GREEN: "#00FF00"
};
var colors = mod.COLORS;
mod.testQuery = MyModule_testQuery;
function MyModule_testQuery() {
 // Do something
}
})();
alert(colors.RED); // #FF0000
 MyModule.testQuery();       // Do something
// Create the global, and also give ourselves a convenient alias for it (`mod`)
var mod;
window.MyModule = mod = {
    RED: "#FF0000",
    BLUE: "#0000FF",
    // ...
    GREEN: "#00FF00"
};

或者如果你想腾出打字时间:

var cols = mod.COLORS;
cols.RED;

当你说"不起作用"时,你能更具体一点吗?:)

我想你在找这个:

(function() {
// Create the global, and also give ourselves a convenient alias for it (`mod`)
window.MyModule = {
    RED: "#FF0000",
    BLUE: "#0000FF",
    GREEN: "#00FF00",
    testQuery: MyModule_testQuery
};
function MyModule_testQuery() {
   // Do something
} 
})();
alert(MyModule.RED); // #FF0000
MyModule.testQuery();       // Do something

只需直接附加内容即可。

(function() {
  window.MyModule = {
      RED: "#FF0000"
    , BLUE: "#0000FF"
    , GREEN: "#00FF00"
    , testQuery = function() {
        // Do something
      }
  };
})();
alert(MyModule.RED);  // #FF0000
MyModule.testQuery(); // Do something