1

我正在阅读 dojo classy tutorial,并且有一个创建命名类的示例:

// Create a new class named "mynamespace.MyClass"
declare("mynamespace.MyClass", null, {

    // Custom properties and methods here

});

问题:什么时候应该使用命名类,什么时候应该使用匿名类?

“一个名为 mynamespace.MyClass 的类现在在应用程序中全局可用”

问题:如何在应用程序中创建我的类的实例?

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

问:这是什么意思?

4

1 回答 1

0

什么时候应该使用命名类,什么时候应该使用匿名类?

在 Dojo 1.8 之前,您需要使用第一个参数来提供一个类名,该类名既用于在命名空间中定义类,也用于 dojo 解析器(用于声明性标记)在 dojoType 属性中。

如何在应用程序中创建我的类的实例?

// First make sure to import/alias the declare module in your application module that will be declaring the new class:
//    define([dojo/_base/declare],function(declare){}){

// From 1.8+, you don't need the class name parameter.  
// Supplying the name provides no additional value.
declare(null, {
    // Custom properties and methods here
});

可在此处找到 dojo 声明的官方参考指南页面以及更多信息:http: //dojotoolkit.org/reference-guide/1.9/dojo/_base/declare.html#dojo-base-declare

这是什么意思?它不再与解析器相关。过去,dojo 解析器在解析 html 片段以将 data-dojo-type="" 与这些类名匹配时使用类名参数。现在您可以只输入 AMD 模块标识符,例如。模块的“dijit/Button”返回小部件的构造函数,解析器可以自动加载和实例化小部件,而无需使用类名。

于 2013-10-21T13:34:58.640 回答