让我先显示代码,然后尝试解释问题。
function toggleButton(filter, button) {
var buttonOn = false;
if ( button.value === "ON" ) {
buttonOn = true;
}
if ( buttonOn ) {
button.value = "OFF";
button.className = "btn_tgl btn_tgl_off";
}
else {
button.value = "ON";
button.className = "btn_tgl btn_tgl_on";
}
checkItem();
}
function checkItem(alreadyGotStuff) {
if(!alreadyGotStuff){
do this
}
else{
do that
}
}
所以问题是这个。在使用此脚本的程序的主干和生产版本中,当toggleButton运行并且checkItem();
被调用时,alreadyGotStuff
为undefined
。这是正确的,因为我需要它是未定义的,因此第一个if
语句将成功,它将do this
。脚本中还有其他函数可以调用checkItem(true);
,因此函数将do that
。在我的开发分支中,当调用为checkItem();
时,该值始终为true。我使用的浏览器并不重要,脚本完全相同。为什么在一个版本中传递undefined
,在另一个版本中保留true
?
由于