我有一个页面,根据所选条件显示图表。每个图都是一个单独的实例,需要自己的对象引用。我在 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 循环中创建新对象并在其他地方使用该变量?
如有任何建议,我们将不胜感激!
最佳答案
您可以将 j
作为额外参数传递给 drawDataView
函数:
function drawDataView(demo, j) {
var dataCache = new DataCache( chartObject[j], dataSource );
}
并这样调用它:
charts.push(drawDataView(demos[demo], j));
更新
由于您没有在 drawDataView
函数中返回任何内容,因此您的数组将填充 undefined
。我认为您想在末尾添加 return dataCache;
。
关于javascript - 在 for 循环中创建新对象 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29212335/