1

直到 dojo 1.6,我曾经这样定义公共常量:

dojo.declare('x.y.Z', null, { ... });

x.y.Z.constant = 100;

这样就可以从其他代码访问它们而无需实例化类。

从 dojo 1.7 开始,我的小部件可能会被重命名或移动。所以我不应该在我的代码中使用绝对模块 ID。

定义这样一个常数的好方法是什么?

4

2 回答 2

2

如果您尝试将其附加到已定义的小部件类,则可以执行以下操作:

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"
});
于 2013-04-10T01:16:23.250 回答
-1

我会在 window 对象中创建一个对象:

window.myConstants={};
window.myConstants.c1=100;

您可以从代码中的任何位置访问 myConstants 对象,因为它是一个全局对象。

javascript 中没有真正的常量。

于 2013-04-09T08:04:07.113 回答