使用dojo的声明函数:第一个参数是什么?

时间:2017-10-02 14:21:53

标签: javascript dojo

在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类"需要自己命名,还是名称并不总是隐含在文件名中?

1 个答案:

答案 0 :(得分:2)

这个第一个声明将创建一个匿名类(只能使用它的作用域),所以要访问这个,你应该在dojoConfig全局变量中访问它或它的包,

对于最后的seconde声明,正在全局范围(应用程序范围)中创建,因此可以使用其声明的类名some.string.with.slashes.parameter(重新定义为使用斜线的点)来实例化或使用它通常是名称空间,包含这个类+类名。

在道场documentation中不是这样:

  

只有在与命名类一起使用时才应创建命名类   Dojo解析器。所有其他类都应省略className参数。

这意味着仅对用于dojo/parser的小部件或类使用第二个声明,例如创建Button的自定义声明(ovveride或extend)......