Я пытаюсь избежать использования глобальной переменной при использовании функций внутри объектов. Я хочу вызвать функцию внутри другой функции и использовать переменную из области первой функции. Например:javascript scope и глобальные переменные
var showForecast = {
'init': function() {
this.getData();
},
'buildView': function(){
var code = "Hey, you're from " + this.data.city;
$('body').append(code);
},
'getData': function() {
$.getJSON('http://ipinfo.io/', function (data) {
console.log(data);
showForecast.buildView();
})
}
}
Очевидно, что это не работает. Я хочу использовать data
внутри buildView
, не делая data
глобальной переменной. Я думал, что использование this
будет правильным действием, потому что я звоню buildView
из функции, где задан data
. Как это можно достичь? Благодарю.
@Oriol - 'buildView' вызывается из обратного вызова, так быть асинхронными не имеет значения. – Quentin
ОК, я неправильно понял код. – Oriol