我很难尝试在javascript函数之间共享变量。
我基本上有一个具有3个函数的对象:一个用于获取数据,一个用于渲染图表,第三个用于操作图表本身。
我的代码看起来像
this.ChartManager = {
plotChart: function(chartName) {
...
ChartManager.createChart(seriesOptions);
},
createChart: function(seriesOptions) {
var chart = $('#container').highcharts('StockChart', {
...
});
},
toggleSeries: function(n) {
current_series = chart.series[n];
...
}
};
但是当我在ToggleSeries中尝试访问图表变量时,我收到一条“未定义”错误消息。
如何从ToggleSeries中访问图表变量?
感谢您的帮助,祝您度过愉快的一天。
更新 - 我的工作代码是
this.ChartManager = {
plotChart: function(chartName) {
...
ChartManager.createChart(seriesOptions);
},
createChart: function(seriesOptions) {
$('#container').highcharts('StockChart', {
...
});
},
toggleSeries: function(n) {
var current_series = $('#container').highcharts().series[n];
...
}
};
答案 0 :(得分:1)
在对象中定义变量,并在任何成员函数中使用它们。
this.ChartManager = {
globalVar1:0,
chart:0,
plotChart: function(chartName) {
...
ChartManager.createChart(seriesOptions);
},
createChart: function(seriesOptions) {
this.chart = $('#container').highcharts('StockChart', {
...
});
},
toggleSeries: function(n) {
current_series = this.chart.series[n];
...
}
};
答案 1 :(得分:0)
你不能 - 在函数内部定义的变量保留在该函数的范围内。您必须将该变量移动到全局范围中,或将其附加到可从当前范围访问的对象。