requirejs 模块的许多新实例

Many new instances of requirejs module

本文关键字:实例 许多新 模块 requirejs      更新时间:2023-09-26

我正在创建一个打字游戏,我以"app.js"作为主要游戏,并通过requirejs加载"单词.js"。

我需要使用> 2 个词,但我仍然对 javascript 很天真,不确定这在 AMD 中是否正确。任何人都可以指出我。我真的很感激。

我认为这就像遵循代码一样,但它不起作用并给我错误

"未捕获的类型错误:对象不是函数"

[应用.js]

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

[字.js]

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

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

如果你想在app.js中使用new words()语法,你必须改变你的单词模块以返回一个函数而不是一个对象(因此错误):

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;
}