0

我很难在 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];
      ...
    }
 };
4

2 回答 2

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];
      ...
    }
 };
于 2013-06-05T07:20:31.093 回答
0

您不能 - 在函数内部定义的变量保留在该函数的范围内。您必须将该变量移动到全局范围或将其附加到可从当前范围访问的对象。

于 2013-06-05T07:21:27.910 回答