我想将一个全局变量传递给一个javascript .each函数,并在迭代时保持其值。
这是代码。
var year = false;
page.posts.each(function(item, year){
year = true;
});
这一年仍然是假的。年份如何在迭代中保持其价值?
答案 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;
});