我正在学习将 dojo 用于我即将开展的项目,因此提前承认这可能是一个非常基本的问题。我试图找到答案,但没有成功。此外,我不得不使用稍旧版本的 dojo - 1.6 我认为没有 AMD。
我已经使用 dojo.declare 定义了一个类,这是一个稍微修改的示例:
dojo.declare("myNamespace.CustomClass", null, {
firstProperty: "The default value",
constructor: function () { }
Test: function () {
alert(this.firstProperty);
}
});
因此,本质上,一个名为 CustomClass 的类具有一个名为 firstProperty 的公共属性,该属性的默认值为“默认值”,一个当前不执行任何操作的构造函数和一个名为 Test 的公共方法,当调用该方法时,该方法的值将发出警报第一属性。
我的假设是,当我创建一个 CustomClass 实例并调用 Test() 时,我会得到一个带有“默认值”的警报框。但是,我没有,而是收到一个带有“未定义”的警报框。如果我在创建实例后设置 firstProperty 的值,然后调用 Test,它会起作用,我会得到属性设置的任何值。因此,一种解决方法是在构造函数中设置默认值,但我读过的内容表明它应该按照我假设的方式工作,所以我宁愿正确地做。
我还尝试在构造函数中调用 dojo.safeMixin(this, null) ,因为我读到的内容让我想知道这是否是必需的,但这并没有什么不同。
提前感谢无论如何,读这个!西蒙