所以我有这个问题。我有一个Javascript
对象,通过var stack = {}
创建。在项目中,该对象用于存储数组。单击“添加”按钮时,会使用键将数组添加到对象中。键是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 = {}
清除对象会留下垃圾。但我不完全确定这意味着什么,或者它是否会引起我的问题。
提前致谢!
答案 0 :(得分:0)
你可以试试这个。
for (var member in stack) {
delete stack[member];
}
在执行stack = {}
时,您只需将其设置为新的空对象,而不是清除其内容。虽然,出于所有意图和目的,这应该工作得很好,所以我不确定错误是否在你认为它发生的地方。