直到 dojo 1.6,我曾经这样定义公共常量:
dojo.declare('x.y.Z', null, { ... });
x.y.Z.constant = 100;
这样就可以从其他代码访问它们而无需实例化类。
从 dojo 1.7 开始,我的小部件可能会被重命名或移动。所以我不应该在我的代码中使用绝对模块 ID。
定义这样一个常数的好方法是什么?
直到 dojo 1.6,我曾经这样定义公共常量:
dojo.declare('x.y.Z', null, { ... });
x.y.Z.constant = 100;
这样就可以从其他代码访问它们而无需实例化类。
从 dojo 1.7 开始,我的小部件可能会被重命名或移动。所以我不应该在我的代码中使用绝对模块 ID。
定义这样一个常数的好方法是什么?
如果您尝试将其附加到已定义的小部件类,则可以执行以下操作:
define(["dojo/_base/declare"], function(declare) {
var MyWidget = declare([], {
//Define your widget as usual
});
MyWidget.someConstant = "42";
return MyWidget;
});
现在你可以像这样使用它:
require(["MyWidget"], function(MyWidget) {
console.debug(MyWidget.someConstant); // Prints out "42"
});
我会在 window 对象中创建一个对象:
window.myConstants={};
window.myConstants.c1=100;
您可以从代码中的任何位置访问 myConstants 对象,因为它是一个全局对象。
javascript 中没有真正的常量。