Модуль Javascript - PullRequest
       3

Модуль Javascript

0 голосов
/ 20 июня 2011

Мне было интересно, можно ли изменить этот код до такой степени, чтобы я мог просто вызвать MyModule.RED вместо MyModule.COLORS.RED. Я попытался сделать мод переменной для хранения цветов, но, похоже, не работает. Это то, что я делаю это неправильно?

(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

EDIT

(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

Ответы [ 3 ]

2 голосов
/ 20 июня 2011
// 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;
0 голосов
/ 20 июня 2011

Просто прикрепите материал напрямую.

(function() {
  window.MyModule = {
      RED: "#FF0000"
    , BLUE: "#0000FF"
    , GREEN: "#00FF00"
    , testQuery = function() {
        // Do something
      }
  };
})();
alert(MyModule.RED);  // #FF0000
MyModule.testQuery(); // Do something
0 голосов
/ 20 июня 2011

Когда вы говорите «не работает», можете ли вы быть более конкретным?:)

Я думаю, что вы ищете это:

(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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...