我正在尝试将AJAX回调函数绑定到某个范围,我做错了什么?
这是我的代码:
var MainApp = {
files:{
"A":{
url:"files/a.json",
content:""
},
"B":{
url:"files/b.json",
content:""
}
},
init:function () {
this.loadFiles();
},
loadFiles:function () {
for (var i in this.files) {
var f = function (data) {
console.log("callback",this);
};
console.log("binding",this);
f.bind(this);
$.get(this.files[i].url, f);
}
}
};
$(function () {
MainApp.init();
});
答案 0 :(得分:1)
f.bind(this);
Function#bind
不会改变原始函数,它会返回绑定到参数的新函数。你可能意味着:
f= f.bind(this);
答案 1 :(得分:0)
尝试使用电话:
that = this;
$.get(this.files[i].url, function() {
f.call(that)
});