如何在Javascript中使用DOJO创建静态类

时间:2015-08-03 19:46:54

标签: javascript dojo static-classes

我正在尝试使用JavaScript创建一个Utility类,并且正在使用Dojo框架。我无法在这里找到关于如何在Dojo框架内正确创建静态类的任何地方。我不想每次都要创建一个新的Utility对象。我宁愿不使用Singleton。

我目前有类似的东西......

//Util.js

define(["dojo/_base/declare",
    "dojo/domReady!"], function (declare) {
        return declare(null, {
            //Pass in string format of element's ID
            clearTextBox: function (elemID) {
                document.getElementById(elemID).value = "";
            }
        });
    });

注意:我使用的是AMD而非传统代码

1 个答案:

答案 0 :(得分:6)

正如其中一条评论中提到的那样,你根本不需要一个“课堂”来做你要求的。这是JavaScript,而不是Java或C#等。

您只需要定义一个返回具有效用函数的对象的模块。

define([], function () {
    return {
        clearTextBox: function (id) {
            document.getElementById(id).value = '';
        }
    };
});

这是一种非常常见的做法,甚至由Dojo本身用于dojo/_base/arraydojo/_base/langdojo/date等实用程序模块。

这也不会每次都创建一个新对象,因为每个AMD模块只加载一次,其工厂函数只执行一次。

Dojo是一个工具包,而不是一个框架,通常不会强迫你以某种方式做某事。不要误以为您创建的每个模块都需要使用declare成为“类”。当需要使用继承功能定义构造函数或mixin时,请使用declare