有人可以帮助我了解背后的逻辑吗?
$(document).ready(function() {
getData([renderData]);
});
function renderData(JSON) {
$.each(JSON, function(i, item) {
//logic
}
}
function getData(callBacks) {
var url= '/data/data2';
$.getJSON(url, function() {
}).done(function(JSON) {
if(callBacks) {
for( var i = 0; i < callBacks.length; i++ ) {
callBacks[i](JSON);
}
}
}).fail(function(xhr, status, error) {
//alert(xhr.responseText);
});
}
函数renderData是否已设置为其自己的参数?
谢谢。
最佳答案
它将数组内的函数renderData
传递给另一个名为getData
的函数。
请注意,它是通过函数而不是调用任何东西,因此数组持有对该函数的引用,而不是其返回值,在getData
内部,可以通过访问作为参数传递的数组的第一个值来调用renderData
函数。
即callBacks[i](JSON); //callBacks[i] is renderData
观察getData
似乎是通过这种方式来完成的,以避免在ajax调用/响应内部嵌套另一层嵌套,从而使代码更具可读性(一旦您了解了)。