在for循环中创建新对象 - Javascript

时间:2015-03-23 14:06:29

标签: javascript object for-loop

我有一个页面,根据所选标准显示图表。每个图都是一个单独的实例,需要自己的对象引用。我在for循环中创建了新对象,但是如何访问该特定函数之外的那些对象。

var chartObject = new Array();

function runInit () {
$(document).ready(function(){
    $("#submit").click(function() { 
        $("#pointList :selected").each(function(){
            selectedValues.push($(this).val()); 
        });

        for(var j = 0; j < selectedValues.length; j++)
        {
            chartObject[j] = new Object();

            var charts = [];

            charts.push( drawDataView( demos[demo] ) );

            chartObject[j].allDataLoaded = function( ) {
                //more code             
            };
        }
    }); 
});
}

我需要在另一个函数中使用chartObject[j]

function drawDataView ( demo ) {
    var dataCache = new DataCache( chartObject[j], dataSource );
}

显然j中没有定义drawDataView,所以如何在for循环中创建新对象并在其他地方使用变量?

任何建议都表示赞赏!

1 个答案:

答案 0 :(得分:1)

您可以将j作为额外参数传递给drawDataView函数:

function drawDataView(demo, j) {
    var dataCache = new DataCache( chartObject[j], dataSource );
}

并将其称为:

charts.push(drawDataView(demos[demo], j));

<强>更新

由于您未在drawDataView函数中返回任何内容,因此您的数组将填充undefined。我想你最后要添加return dataCache;

相关问题