我正尝试在 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 而不是旧版代码
最佳答案
正如其中一条评论中提到的,您根本不需要“类”来完成您的要求。这是 JavaScript,不是 Java 或 C# 等。
您只需要定义一个模块,它返回一个带有实用函数的对象。
define([], function () {
return {
clearTextBox: function (id) {
document.getElementById(id).value = '';
}
};
});
这是一种非常普遍的做法,甚至被 Dojo 本身用于实用模块,例如 dojo/_base/array
、dojo/_base/lang
和 道场/日期
。
这也不会每次都创建一个新对象,因为每个 AMD 模块只会加载一次,并且它的工厂函数只会执行一次。
Dojo 是一个工具包,而不是一个框架,通常不会强制您以某种方式做某事。不要陷入认为您创建的每个模块都需要是使用 declare
的“类”的想法。当您需要定义具有继承功能的构造函数或混合时,请使用 declare
。
关于javascript - 如何在 Javascript 中使用 DOJO 创建静态类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31795551/