Javascript 在dojo中定义自定义类
我试图定义一个类,但当我在代码中引用它时,我得到了一个错误 错误:declare custom.place:mixin#0不是可调用的构造函数Javascript 在dojo中定义自定义类,javascript,dojo,Javascript,Dojo,我试图定义一个类,但当我在代码中引用它时,我得到了一个错误 错误:declare custom.place:mixin#0不是可调用的构造函数 define(['dojo', 'dijit/dijit', "dojo/_base/declare", "dijit/place"], function(dojo, dijit, declare, place) { return declare("custom.place", [place], { newMethod:
define(['dojo', 'dijit/dijit', "dojo/_base/declare", "dijit/place"],
function(dojo, dijit, declare, place) {
return declare("custom.place", [place], {
newMethod: function() { }
});
})
这是行不通的。但是下面的代码可以正常工作
define(['dojo', 'dijit/dijit', "dojo/_base/declare", "dijit/MenuItem"],
function(dojo, dijit, declare, MenuItem) {
return declare("custom.item", [MenuItem], {
newMethod: function() { }
});
})
感谢您的帮助。谢谢。Dojo类只能扩展其他Dojo类。不是Dojo类;它只是一个具有某些函数属性的对象
require(["dijit/place", "dijit/MenuItem"], function(place, MenuItem) {
console.log(typeof place);
console.log(typeof MenuItem);
});
上述代码给出了控制台输出:
LOG: object
LOG: function
如果您想要一个包含place实用程序函数和一些额外函数的对象,您可以创建自己的版本,如下所示:
define(["dojo/_base/lang", "dijit/place"], function(lang, place) {
var newMethods = {
foo : function () {}
};
return lang.mixin(newMethods, place);
});
如果您想将place的功能混合到Dojo类中,可以使用,但我不确定您为什么要这样做。谢谢!为了澄清,我最终想将一个参数改为
dijit.place.\u place()
,一个私有函数,但是一个方面看不到这个函数。