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