有人可以帮助我了解背后的逻辑吗?

$(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调用/响应内部嵌套另一层嵌套,从而使代码更具可读性(一旦您了解了)。

10-08 02:41