我正在创建一个打字游戏,我将“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){
.
.
});
答案 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;
}