2015-09-14 3 views
0

я определил модуль (для кода легко читать, я удалить некоторые ненужные строки ..)Как получить доступ к глобальным переменным из модуля requirejs?

Вот мой game.js

define(['util'], function (util) { 
    return { 
     createNew : function (setting) { 

      var game = { 

       intervalTrigger : function() { 
        return window.setInterval(function() {      
         score++;//how to read deal with this value? 
        }, 1000); 
       } 

       } 

      }; 
      return game; 

     } 
    }; 
}); 

и использовать его в app.js:

require.config({ 
     baseUrl: "./src", 
}); 

requirejs(['util', 'game'], 
    function (util,game) { 
     var score = 0; 

     function startgame(level) { 
      var setting = {}; 
      var g = game.createNew(); 
      g.intervalTrigger(); 
     } 
     startgame(0); 
}); 

в моем случае мне нужно до createNew несколько раз, поэтому оценка не может быть сохранена в модуле.

поэтому как получить доступ score в модуле game?

ответ

0

Вам нужно определить score в качестве фактического модуля. Например:

define([], function() { 
     var gameStats = { 
      score: 0 
     }; 

     return gameStats; 
}); 

Теперь вам нужно только вводить туда, где вам нужно, чтобы работать со статистикой игры.

0

создать/установить функцию Досталось и выставить его в game.js:

define(['util'], function (util) { 
    var score = 0; 
    return { 
     createNew : function (setting) { 
      var game = { 

       intervalTrigger : function() { 
        return window.setInterval(function() {      
         score++;//how to read deal with this value? 
        }, 1000); 
       } 
       getScore: function(){ return score;} //getting the score 
       setScore: function(value){score = value;} //setting the score 
       } 

      }; 
      return game; 

     } 
    }; 
}); 

Теперь здесь вы можете использовать:

 require.config({ 
      baseUrl: "./src", 
    }); 
requirejs(['util', 'game'], 
     function (util,game) { 
      var score = 0; 

      function startgame(level) { 
       var setting = {}; 
       var g = game.createNew(); 
       g.setScore(score); //setting the score 
       g.intervalTrigger(); 
      } 
      startgame(0); 
    }); 
+0

не было бы лучше определить счет как фактический геттер/сеттер и получить к нему доступ таким образом? '' This.score ++? –

+0

нет, если вы хотите получить валидацию по заданному методу – Saar

+0

Читайте о ECMA-Script 5 getters/setters ................. –

Смежные вопросы