所以我有这个问题。我有一个通过 var stack = {}
创建的 Javascript
对象。在项目中该对象用于存储数组。单击添加按钮时,将使用键将数组添加到对象中。键是 HTML 输入字段中输入的值。用户可以根据需要多次单击添加的按钮。单击提交按钮后,数据将通过 ajax
发送到 php
。成功返回后,stack
会被清除,文档就可以再次使用了。下面的函数是实现的示例代码。
Add.js
function add(stack){
...
var arr = ['apple','oranges'];
stack[someName] = arr;
}
Submit.js
function submit(stack){
$.ajax({
type: "POST",
url: "somefile.php",
success: function(html){
//some event
...
//remove elements in stack
stack = {};
}
});
}
Main.js
var stack = {};
$('#addButtonId').on('click',function(){
add(stack);
}
$('#sumbitButtonId').on('click',function(){
submit(stack);
}
问题是,一旦按下提交按钮,对象就会被清除。如果再次单击 addButton,对象 stack
将不会保存任何新数组。有人可以向我解释发生了什么事吗?我在某处读到,使用 obj = {} 清除对象会留下垃圾。但我不完全确定这意味着什么或者它是否涉及我的问题。
提前致谢!
最佳答案
你可以试试这个。
for (var member in stack) {
delete stack[member];
}
当执行stack = {}
时,您只是将其设置为一个新的空对象,而不是清除其内容。尽管出于所有意图和目的,这应该可以正常工作,所以我不确定错误是否发生在您认为发生的地方。
关于javascript - 删除值后重用 javascript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33676966/