2016-07-08 8 views
0

Я отправляю массив int из моего приложения android, и он очень хорошо принят в JS, но дело в том, что я присваиваю массив глобальной переменной, но переменная всегда не определена.неопределенные глобальные переменные javascript

var values; 
    function getFromAndroid() { 

     alert(Android.getFromAndroid()); 
     this.values = Android.getFromAndroid(); 
     this.values = JSON.parse(this.values); 
     alert("Hello! Data are: " + this.values + "; first = " + this.values[0]); //not null 

     } 

     var chart; 
    alert("Hello!: " +this.values[0]); //undefined 
+2

Поскольку вы не вызываете функцию, значение никогда не инициализируется – AxelH

+0

Я звоню его OnLoad() –

+0

Вы пытаетесь использовать 'values' * до * это заполненный в асинхронном режиме. См. Связанный вопрос и его ответы. Короткая версия: Запустите свой код, используя его из 'getFromAndroid'. –

ответ

0

это ключевое слово действует по-разному в javascript, чем другие языки. Он будет ссылаться на локальную переменную, а не на глобальную переменную. Этот фрагмент кода очистит ваши сомнения, я думаю.

var globalVar ; 
 

 
function a() { 
 
    this.globalVar = 30; 
 
    globalVar = 40; 
 
} 
 

 
var obj = new a(); 
 

 
console.log(obj.globalVar + "\t" + globalVar);

Смежные вопросы