requirejs模块的许多新实例

时间:2013-11-16 12:36:40

标签: javascript requirejs amd

我正在创建一个打字游戏,我将“app.js”作为主要内容并通过requirejs加载“words.js”。

我需要使用> 2个字,但我仍然天真与JavaScript,并不确定这是在AMD做的正确。任何人都可以指出我。我真的很感激。

我认为它会像下面的代码但它不起作用并给我错误

“未捕获的TypeError:对象不是函数”

[app.js]

require(['jquery','app/canvas','app/words'], function($,game_screen,words){
   var words1 = new words();
   var words2 = new words();
   .
   .
});

[words.js]

define(['app/canvas'],function(canvas){
   var word_list=[{"word1"},{"word2"},...];
   return {
        addWord: function(new_word){
             .
             .
});

1 个答案:

答案 0 :(得分:4)

现在您正在从单词模块返回一个对象:{ addWord: function() {} ... }。因此,在app.js中,当您将words设置为等于从单词模块返回的对象时,您可以通过执行words.addWord()来调用这些函数。

如果您希望在new words()中使用app.js语法,则必须更改单词模块以返回函数而不是对象(因此出现错误):

define(['app/canvas'],function(canvas) {
   var word_list=[{"word1"},{"word2"},...]; // not sure how this is used

   function words() {
     // some code
   }

   words.prototype.addWords = function() {
     // some code
   }

   return words;
}