Javascript 未捕获类型错误:数字不是函数:当创建dojo类时

Javascript 未捕获类型错误:数字不是函数:当创建dojo类时,javascript,dojo,Javascript,Dojo,我在学dojo 我使用declare创建了一个dojo类,如下所示 require( ["dojo/_base/declare"],function(declare){ return declare(null,{ constructor : function(){ alert("done"); } }); }); 这是保存在/learnDojo/root/test.js中的 以及index.html,如下所示 <!DOCTYPE

我在学dojo

我使用declare创建了一个dojo类,如下所示

require(
["dojo/_base/declare"],function(declare){
    return declare(null,{
      constructor : function(){
          alert("done");
      }
    });
});
这是保存在/learnDojo/root/test.js中的 以及index.html,如下所示

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<script type="text/javascript">
var dojoConfig = {
    async: false,
    parseOnLoad: false,
    isDebug : true,
    packages:[
        {   name:"base",
            location:"/learnDojo/root"
        }]
};
</script>
<script src="//localhost:8080/dojo1.9.0/dojo/dojo.js" type="text/javascript"></script>
<script type="application/javascript">
require(["base/test","dojo/_base/declare","dojo/domReady!"],function(test,declare){
    var test = new test();
});

</script>
<body>

</body>
</html>

var dojoConfig={
async:false,
parseOnLoad:false,
是的,
套餐:[
{名称:“基地”,
位置:“/learnDojo/root”
}]
};
require([“base/test”,“dojo/_base/declare”,“dojo/domReady!”]),函数(test,declare){
var测试=新测试();
});
我在tomcat的webapps文件夹中的/learnDojo中有index.html

当我从浏览器加载时,我得到错误“UncaughtTypeError:number不是函数”


为什么??在定义dojo模块时,您应该使用
define()
,而不是
require()。因此,您的/learnDojo/root/test.js文件如下所示:

define(
["dojo/_base/declare"],function(declare){
    return declare(null,{
      constructor : function(){
          alert("done");
      }
    });
});
原因是
define()
实际上会返回您在回调中返回的对象/值(在本例中是
return declare(…)
语句)。但是
require()
不会返回该值,从而导致奇怪的错误