全局变量未在函数内部更新

时间:2017-12-05 12:14:54

标签: javascript

我花了几个小时试图找出为什么变量 dataset_path 这个全局变量总是未定义的原因

var dataset_path ;

function myFunction() {
  offline_data_mainlooper_bitfinex();
  print_bilan();
}
function offline_data_mainlooper_bitfinex(){
    var hours_step_size = 1*2;
    var daily_step_size = 24*2,
    // dataset_path = './quote/bitfinex/from_1480550400to_1512100800_1hquote.json';
    // dataset_path =  ('./quote/bitfinex/from_1480550400to_1512100800quote.json') //thats's 30 min
    dataset_path =  './quote/bitfinex/from_1480550400to_1512100800_15mquote.json'
       //... somecode


}
function print_bilan(){
   var filename = './analysis/test_log.json';
   //... somecode
 console.log('Quote saved! to ' +dataset_path, filename)
}

2 个答案:

答案 0 :(得分:6)

因此:

var daily_step_size = 24*2,
//                        ^
dataset_path =  './quote/bitfinex/from_1480550400to_1512100800_15mquote.json'

这是在offline_data_mainlooper_bitfinex的局部范围内声明多个变量,而不是结束daily_step_size声明然后对全局变量进行赋值。用分号替换逗号(或省略它)。

答案 1 :(得分:0)

当我放一个时,它对我有用;

后代替a
var daily_step_size = 24*2,

我认为你正在声明一个新的var,其范围在函数内部。所以当你调用全局的时候,它是未定义的。

希望有所帮助