【发布时间】:2016-01-05 00:26:41
【问题描述】:
quarterStr 一直未定义?我正在尝试在 getNexthreeMonths 函数中访问它。所以从下拉菜单中选择一个月,然后我想在getNexthreeMonths 中访问结果:
getNextThreeMonths: function() {
$("#date").on('change', function (e){
var currentMonth = $(this).find('option:selected').attr('id');
var currentMonth = parseInt(currentMonth);
var qNum = Math.floor(currentMonth / 3);
var qArr = ["Jan","Apr","Jul","Oct"];
var quarterStr = qArr[ (qNum+1) % 4 ] + "," + qArr[ (qNum+2) % 4 ] + "," + qArr[ (qNum+3)%4 ];
});
console.log(quarterStr);
}
【问题讨论】:
-
尝试将 console.log(quarterStr) 移到 });在你的代码中。看起来它在您定义的匿名函数之外。
-
我想访问 getNextThreeMonths: 函数中的 QuarterStr。我不确定
-
javascript 范围:stackoverflow.com/questions/500431/…
-
问题是
quarterStr的范围是回调函数,而不是getNextThreeMonths。要在回调之外访问变量,您需要在回调之外声明它。 -
@Lee 您需要将其发布为答案并声明您的声望点……在我这样做之前! ;)
标签: javascript scope closures