在dojo中使用declare
时,我有时会看到两种略有不同的方式:
方式是
define(["dojo/_base/declare"], function(declare){
return declare(null, {
constructor: function(){
}
});
与之形成鲜明对比
define(["dojo/_base/declare"], function(declare){
return declare("some/string/with/slashes/parameter",null, {
constructor: function(){
}
});
我想知道第二个版本中"some/string/with/slashes/parameter"
的原因是什么?
模块/" dojo类"需要自己命名,还是名称并不总是隐含在文件名中?
答案 0 :(得分:2)
这个第一个声明将创建一个匿名类(只能使用它的作用域),所以要访问这个,你应该在dojoConfig全局变量中访问它或它的包,
对于最后的seconde声明,正在全局范围(应用程序范围)中创建,因此可以使用其声明的类名some.string.with.slashes.parameter
(重新定义为使用斜线的点)来实例化或使用它通常是名称空间,包含这个类+类名。
在道场documentation中不是这样:
只有在与命名类一起使用时才应创建命名类 Dojo解析器。所有其他类都应省略className参数。
这意味着仅对用于dojo/parser
的小部件或类使用第二个声明,例如创建Button的自定义声明(ovveride或extend)......