删除值后重用javascript对象

时间:2015-11-12 16:54:15

标签: javascript php jquery html ajax

所以我有这个问题。我有一个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 = {}清除对象会留下垃圾。但我不完全确定这意味着什么,或者它是否会引起我的问​​题。

提前致谢!

1 个答案:

答案 0 :(得分:0)

你可以试试这个。

for (var member in stack) {
  delete stack[member];
} 

在执行stack = {}时,您只需将其设置为新的空对象,而不是清除其内容。虽然,出于所有意图和目的,这应该工作得很好,所以我不确定错误是否在你认为它发生的地方。