原来一直不理解为什么要把this赋值给变量,要用直接用this不就行了么?这个有时候真不行!因为this在不同情况下指代的对象是随时在发生变化的,比如在现在这个代码中,this在进入ajax之前指代的是调用reloadData的那个对象,比如a.reloadData,则this此时就指代a。当进入success中后,this就指代的是ajax返回的当前window,而不再是a,此时再调用a的属性或方法就取不到了,而提前把this(a)赋值给变量,在用a时可以从变量中取到。
reloadData : function(fn) {
var me = this;
var setting = this.setting;
Hq.ajax({
url : url,
type : 'post',
cache : false,
async:this.setting.asyncAutoLoad,
data : this.setting.params,
dataType : 'json',
success : function(_setting) {
setting.dataTable.setEnableEdit(setting.editable);
}
});