2013-06-20 166 views
1

我讀通過道場優雅tutorial,並有創建一個名爲類的例子:dojo命名類 - 何時使用它們以及如何創建它們?

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

    // Custom properties and methods here 

}); 

問:什麼時候應該使用名爲類和何時應使用匿名類?

「命名mynamespace.MyClass類是現在應用在全球範圍內提供」

問:如何在應用程序中創建我的類的實例?

「如果他們將與 道場解析器使用。所有其他類應該忽略className參數命名類應該只被創建。」

問題:這是什麼意思?

+3

有趣。我記得在使用AMD加載器時已經閱讀過一些你不能使用命名類的東西。這些類名尤其如此。已被dojo解析器用於識別小部件,但由於dojo 1.8也可以直接使用模塊名稱「my/form/InputWidget」作爲data-dojo類型。所以我再也看不到任何用於命名類的用法。 – James

回答

0

什麼時候應該使用命名類,什麼時候應該使用匿名類?

在使用Dojo 1.8之前,您需要使用第一個區段來提供類名稱,該名稱既用於在命名空間中定義類,又用於dojoType屬性中的dojo解析器(用於聲明性標記)。

如何在應用程序中創建我的類的實例?

// 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 
}); 

官方參考指南頁面道場更多信息聲明在這裏找到:http://dojotoolkit.org/reference-guide/1.9/dojo/_base/declare.html#dojo-base-declare

這是什麼意思? 它不再適用於解析器。它曾經是dojo解析器在解析html片段以匹配data-dojo-type =「」這些類名時使用的類名參數。現在,您可以將AMD模塊標識符例如。返回小部件的構造函數的模塊「dijit/Button」,解析器可以自動加載並實例化小部件,而不使用類名稱。

相關問題