我有以下功能
var VisibilityNewDevice = 1
function visibilityNewDevice() {
if (VisibilityNewDevice === 1) {
toggleVisibility('buttonPressesTable'),
toggleVisibility('IconMinimize'),
toggleVisibility('IconSync');
var VisibilityNewDevice = 0;
}
}
如果我打电话给visibilityNewDevice()
我,我将undefined
返回并且不运行代码。但是如果我这样运行
if (VisibilityNewDevice === 1) {
toggleVisibility('buttonPressesTable'),
toggleVisibility('IconMinimize'),
toggleVisibility('IconSync');
var VisibilityNewDevice = 0;
}
它工作正常。我很困惑为什么function
不起作用,但是当我运行该if
语句时,它就可以正常工作。
答案是简单地删除
var
内部函数
你写
var VisibilityNewDevice = 1
function visibilityNewDevice() {
// expecting: 1 === 1
if (VisibilityNewDevice === 1) {
...
var VisibilityNewDevice = 0;
}
}
JavaScript编译
var VisibilityNewDevice = 1
function visibilityNewDevice() {
var VisibilityNewDevice = undefined;
// undefined === 1
if (VisibilityNewDevice === 1) {
...
VisibilityNewDevice = 0;
}
}
请注意您的var
是悬挂在顶部,对于任何进入var
你内心的创造function
。那悬挂 var
将覆盖全球var
,当程序进入具有相同的名称function
。
另请参阅:JavaScript吊装说明
最后,当您创建私有文件时var
,提升自己的身份并不是一个坏主意,这样您就可以更好地遵循自己的代码
function () {
var a, b, c, d;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句