this赋值给变量


原来一直不理解为什么要把this赋值给变量,要用直接用this不就行了么?这个有时候真不行!因为this在不同情况下指代的对象是随时在发生变化的,比如在现在这个代码中,this在进入ajax之前指代的是调用reloadData的那个对象,比如a.reloadData,则this此时就指代a。当进入success中后,this就指代的是ajax返回的当前window,而不再是a,此时再调用a的属性或方法就取不到了,而提前把this(a)赋值给变量,在用a时可以从变量中取到。

this赋值给变量_第1张图片

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);

}

});

你可能感兴趣的:(this赋值给变量)