在函数内部访问变量

Accessing vars inside functions

在下面的代码中:

 var pie = [];

function makeChart() {
    new Chart(document.getElementById("canvas").getContext("2d")).Doughnut(
        pie);
};

var data = jQuery.getJSON('xxx', function(data) {

    pie = [{
        value: data.company_live_ads,
        color: "#F7464A"
    }, {
        value: data.total_candidates,
        color: "#46BFBD"
    }, {
        value: data.company_ads_published_3days,
        color: "#FDB45C"
    }, {
        value: data.company_apps_today,
        color: "#4D5360"
    }];

    makeChart();
});

饼图变量在 JSON 函数中更新。然后调用 makeChart 函数。如果我将 console.log(pie) 放入 makeChart() 中,它会向我打印带有数字的数组 Pie 。但是,出于某种原因,它不会将此 var 传递到制作图表的函数中。此外,如果我在这个函数中放入一个带有虚拟数据的饼图,它会生成图表。

我认为这一定与范围有关,但我有点迷茫。任何帮助将不胜感激。

JSON 将数字作为字符串传递,因此硬编码值起作用的原因。使用 parseInt() 更改为生成的数字和图表。