我基本上想知道全局变量在 javascript/JQuery 环境中是如何工作的。我最熟悉一种叫做处理的语言,有人告诉我它是基于 java 的。我希望 javascript 和 JQuery 中的变量表现得与处理中的变量一样,但它们并没有像我预期的那样工作,而且我终其一生都无法摆脱它。
我有一个非常简单的例子来说明我的困惑:
var what="";
$(document).ready(function(){
$("p").click(function () {
what="p";
});
if(what=="p"){
alert(what);
}//end if
});//end doc ready
在处理过程中,这会起作用,因为“what”变量是全局变量,并且通过单击段落来更改它,if 语句应该不断检查是否 'what'=='p',并触发警报。但这不是发生的事情——“what”似乎只在 click 函数内更新,即使它是一个全局变量,所以当涉及 if 语句时,“what”仍然等于“”而不是“p” .
如果有人能解释为什么会发生这种情况,我将非常感激!