我有时会看到两种与在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类"是否需要命名,还是并不总是由其文件名暗示?
该第一个声明将创建一个匿名类(仅具有其范围),因此要访问最后一个您应该在Dojoconfig Global Var中进行访问或访问该类别或其软件包,
对于第二次声明,最后是在全局范围(APP范围)中创建的,因此可以使用其声明的类名称some.string.with.slashes.parameter
(comomanded使用slash in of slash in of slash)进行实例化或使用,以定义一般Conataing此类 类名称。
不是在Dojo文档中:
命名类仅在将其与 Dojo解析器。所有其他类都应省略类名参数。
这意味着仅对dojo/parser
使用的小部件或类别使用第二个声明,例如创建按钮的自定义声明(Ovveride或Extend)...