变量值不改变为什么

Variable value does not change why?

本文关键字:为什么 改变 变量值      更新时间:2023-09-26

代码:

var popupFirstName;
PopupFirstNameButton.addEventListener('click', function(){
    popupFirstName = 'SomeValue';
});

当我用alert(popupFirstName)表示其他函数时,它表示undefined。我怎样才能得到这个值?

popupFirstName有一个局部作用域,从你告诉我们的我们不知道。但我认为它是在一个函数中,所以作用域将是该函数的局部。你定义的函数继承了对该变量的访问;这是语言的一个方便特性。

如果你想让变量的一个实例具有全局作用域,写window.popupFirstName

您在哪个浏览器中进行测试?Firefox需要 addEventListener 的第三个参数,IE使用一个完全不同的方法( attachEvent )。

您可以尝试将该函数赋值给onclick:

PopupFirstNameButton.onclick = function(){
    popupFirstName = 'SomeValue';
};

如果你想了解更多关于高级事件处理及其跨浏览器问题,或者关于JavaScript和事件的一般知识,我建议阅读quirksmode.org上的好文章。

不言而喻,在设置变量之前必须单击按钮,并且调用alert(popupFirstName)的函数必须访问该变量。

确保该变量声明在与调用它的函数相同的块作用域中

您遗漏了addEventListener函数的第三个参数。以Firefox为例,您需要:

PopupFirstNameButton.addEventListener('click', function(){
    popupFirstName = 'SomeValue';
}, false);
https://developer.mozilla.org/en/DOM/element.addEventListener