如本博this
文所述,您可以在 Javascript 中的匿名函数中设置范围。
this
在 AJAX 请求的匿名函数调用中是否有更优雅的方法success
(即不使用that
)?
例如:
var Foo = {
bar: function(id) {
var that = this;
$.ajax({
url: "www.somedomain.com/ajax_handler",
success: function(data) {
that._updateDiv(id, data);
}
});
},
_updateDiv: function(id, data) {
$(id).innerHTML = data;
}
};
var foo = new Foo;
foo.bar('mydiv');
使用 call 但仍然必须命名父对象范围that
。
success: function(data) {
(function() {
this._updateDiv(id, data);
}).call(that);
}