2013-06-05 61 views
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我嘗試訪問圖表變量,我得到一個「未定義」錯誤消息。

如何讓Toggle變量可以訪問圖表變量?

感謝您的幫助和愉快的一天。

UPDATE - 我的工作代碼是

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]; 
     ... 
    } 
}; 
0

你不能 - 在函數內部定義的變量停留在函數的作用域內。您必須將該變量移入全局範圍或將其附加到可從當前範圍訪問的對象。

+1

感謝您的回覆 – macsig