全局变量很顽固

时间:2015-02-18 17:37:01

标签: javascript variables

为什么我的全局变量很顽固?

这是我的简化代码段:

window.bVar = false;    
function iChange() {
          bVar = true;
          alert( bVar ); // 'true'
          }
// some event calls iChange function
window.onbeforeunload = alert( bVar ); // 'false'

警报始终显示“错误”字样。 (除非我在功能中提醒)。

我也尝试使用var bVar = false来设置全局变量。

为什么我的全局变量不会超出函数范围?

2 个答案:

答案 0 :(得分:3)

这真的太短了,不能成为一个答案,这就是我在评论中写的原因,但是你立即评估alert(bVar)而不是将它作为onbeforeunload监听器的一部分进行评估。你需要这样的东西:

window.onbeforeunload = function() { alert(bVar); };

答案 1 :(得分:0)

为了不那么简洁和具体,我想调用另一个函数,没有真正需要提醒。另一个函数将执行.load并将值写入数据库。这应该工作吗? ;因为它没有传递全局变量的更新值:(例如......

var bVar = "value";
window.onbeforeunload = function() { dosomethingelse( bVar ); } 
function dosomethingelse( bVar ) { $("#id").val( bVar ); }