这是什么意思?getData([renderData]);

What does this mean? getData([renderData]);

本文关键字:renderData 是什么 意思 getData      更新时间:2023-09-26

有人能帮我理解这背后的逻辑吗?

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

getData异步加载一些JSON,然后在加载所有内容时调用所需的任意数量的回调(通过数组)。任何回调都将以加载的数据作为第一个参数进行调用。

在这种情况下,renderData是唯一给定的回调。