如何解决第一次调用函数后如何清除变量的内存
我正在尝试清除变量的内存,因为该函数仅在第一次调用时才能正常工作,稍后如果我更改输入中的值,该函数将在旧输入上工作...我可以以某种方式清除旧值吗?我试过 x,y=undefined,但它不起作用。
var btn = document.getElementById("mybutton");
btn.addEventListener("click",compareValue);
var x = Number(document.getElementById("value1").value);
var y = Number(document.getElementById("value2").value);
function compareValue (){
if (x>y){window.alert("Value 1 bigger")
}else if(y>x){window.alert("Value 2 bigger")
}else{window.alert("Values are equal")};
document.getElementById("value1").value="";
document.getElementById("value2").value="";
x=undefined;
y=undefined;
};
解决方法
只需像这样移动传递给 addEventListener()
的函数内的变量声明:
var btn = document.getElementById("mybutton");
btn.addEventListener("click",compareValue);
function compareValue(){
var x = Number(document.getElementById("value1").value);
var y = Number(document.getElementById("value2").value);
if(x > y){
window.alert("Value 1 bigger");
}else if(y > x){
window.alert("Value 2 bigger");
}else{
window.alert("Values are equal");
}
document.getElementById("value1").value = "";
document.getElementById("value2").value = "";
};
这将导致它们被限定在 compareValue
函数内部,并且在函数结束时它们将被删除。 (并且在该功能之外它们将无法访问(甚至不存在)。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。