【发布时间】:2016-02-12 19:02:21
【问题描述】:
在对象中使用函数时,我试图避免使用全局变量。 我想在其他函数中调用一个函数并使用第一个函数范围内的变量。 例如:
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();
})
}
}
显然它不起作用。我想在 buildView 中使用 data 而不使 data 成为全局变量。
我认为使用this 是正确的做法,因为我从定义data 的函数中调用buildView。
如何做到这一点?谢谢。
【问题讨论】:
-
@Oriol —
buildView从回调中调用,因此异步无关紧要。 -
好的,我误解了代码。
标签: javascript jquery scope this