我在网页中有一个变量,它被设置为一个值并且是string类型。单击一个按钮时,它会调用一个函数&在函数结束时,我想要清理之前设置的任何内容。我尝试过使用:
$.removeData(myVar);
但它没有做任何事情。之前的日志陈述和&在该声明之后显示它仍具有价值&在&之前键入在上述声明之后。
另一个未使用的变量的值为undefined
,类型为undefined
。这两个变量恰好都是页面中的全局变量。
如何将myVar
重置为初始状态?我知道它应该很简单,但我错过了一些东西。非常感谢任何帮助。
答案 0 :(得分:15)
嗯......几个可能的直接答案。
myVar = undefined;
myVar = null;
delete window.myVar;
但是,我会质疑变量是全局的逻辑,但只能在某些方法中使用。以下是如何更好地构造(使用从ajax中添加值的随机伪示例):
addAjaxButton.onClick(function() {
var counter = 0;
ajax(function(addition) {
counter += addition;
ajax(function(moreAdd) {
counter += moreAdd;
alert('Total is ' + counter);
});
});
});
在这种情况下,不需要删除计数器 - 当所有AJAX都完成时,它将超出范围。
答案 1 :(得分:1)
只需为其指定一个值即可。如果初始状态未定义,请将其设置为null。你不必对jQuery做任何想要杀死它的东西。
答案 2 :(得分:0)
听起来你的功能正在做一些“副作用”的事情而你想撤消这些事情吗?
本声明
我想要清理之前设定的任何内容。
与此声明不同
如何将myVar重置为初始状态?
您实际想要做的是将其复制到本地范围的变量而不是更改全局变量。此代码演示了如何使用函数参数并在本地制作全局var的副本。
var someGlobal = 1;
someMethod();
someOtherMethod(someGlobal);
function someMethod() {
var localVar = someGlobal;
localVar = 2;
}
function someOtherMethod(localVar) {
localVar = 3;
}
window.console.log(someGlobal);
答案 3 :(得分:-1)
这是重置值的一种方法:
$(myVar).val('');