dojo.declare("profile.BasicInfo", [dijit._Widget, dijit._Templated], {
somefunc: function() {
dojo.xhrPost({
url: ajaxURL,
content: adata,
load: function(data) {
alert(this);//this refers to the object sent to xhrPost
}
});
},
somevar: 17
});
我使用的地方this
指的是将函数xhrPost作为参数发送的对象。这是对的。没有错误。但是我想访问作为dojo.declare的第三个参数的对象。我想访问somevar
。当然this.somevar
不会工作。需要参考这是dojo小部件
我想出的一个可能的解决方案是对this
使用重复引用,然后在xhrPost中使用它。这会工作吗?或者我用错误的方式使用对象。或者当这个dojo加载器解析这个文件时会出现问题吗?
somefunc: function() {
var temp = this;
dojo.xhrPost({
url: ajaxURL,
content: adata,
load: function(data) {
alert(temp);//will temp refer to what i want it to?
}
});
},
有没有更好的解决方案?
你也可以使用'dojo.hitch()'改变'this'范围。但我更喜欢'var self = this'这行。这是更少的代码,更清楚。 –
啊,我忘了那个。就我个人而言,我从不使用顺风顺水,因为我认为它会让有限的道场经验的人感到困惑。 – limscoder