未定义不是函数 - RequireJS

时间:2014-05-24 16:03:48

标签: javascript requirejs

我在RequireJS中包含一个模块时遇到问题。

有两个文件.. test.js和card.js

在test.js中,当页面加载时,“undefined不是函数”:

require(
    ['app', 
     'jquery', 
     'card'], 
    function(App, $, Card) {
        var card = new Card("test");
    }
);

这是card.js:

define("Card", function () {
    function Card(name) {
       this.name = name;             
    };

    return Card;
});

我在card.js中放了一些console.log(),并且在test.js中被引用时它会调用它们。另外,如果我要在card.js中定义一个常规的js对象类(例如):

function Card(name) {
   this.name = name;
}

我可以在test.js中正确创建该Card对象。

有什么线索我怎么挂错了?

1 个答案:

答案 0 :(得分:1)

正如Bergi所说,问题在于你的模块名称不一样。

对于RequireJS,Cardcard是不同的模块。

您所要做的就是将card.js更改为

define("card", function () {
    function Card(name) {
       this.name = name;             
    };

    return Card;
});