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

Using dojo's declare function: what is the first parameter?

在 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 class" 是否需要为自己命名,或者命名并不总是由其文件名暗示?

第一个声明将创建一个匿名 class(仅在其范围内可用)因此要访问最后一个,您应该在 dojoConfig 全局变量中访问它或它的包,

对于最后的第二个声明,它是在全局范围(应用程序范围)中创建的,因此可以使用其声明的 class 名称 some.string.with.slashes.parameter 来实例化或使用它(建议使用点insted of slash) 定义一般名称 space conataing this class + class name.

不是在道场里 documentation :

Named classes should only be created if they will be used with the Dojo parser. All other classes should omit the className parameter.

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