如何在javascript回调函数中传递全局变量?

时间:2013-08-09 12:08:42

标签: javascript callback global-variables

我想将一个全局变量传递给一个javascript .each函数,并在迭代时保持其值。

这是代码。

 var year = false;
 page.posts.each(function(item, year){
   year = true;
 });

这一年仍然是假的。年份如何在迭代中保持其价值?

4 个答案:

答案 0 :(得分:1)

函数参数和全局变量之间存在名称冲突。由于函数参数名称更靠近执行的代码,当 JavaScript 查找变量名称以找出您的意思时,它首先找到参数名称,这就是设置的内容。

如果要显式设置全局变量,则必须通过window访问它,即

window.year = true; // explicit global

答案 1 :(得分:0)

您的变量名称存在冲突。

var year = false;
 page.posts.each(function(item, yr){
   year = true;
 });

答案 2 :(得分:0)

尝试附加到窗口文档并查看。

 window.year = false;
 page.posts.each(function(item, year){
   year = true;
 });

答案 3 :(得分:0)

您可以重命名变量年以避免冲突,或者如果您只想更改全局变量,则应使用window.year = true

page.posts.each(function(item, year){
   year = true;  
});