javascript - 删除值后重用 javascript 对象

标签 javascript php jquery html ajax

所以我有这个问题。我有一个通过 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/

相关文章:

javascript - 如何从对象中删除数组值

javascript - 删除字符串中重复的连续单词的最快算法?

php - 在 Windows 上的 XAMPP 上为 PHP 安装 couchbase 客户端 SDK

php - 使用 PHP 的网页连接到远程 MySQL 数据库

javascript - 单击屏幕上的任意位置时如何隐藏特定的 div

javascript - HTML 表单字段中的 PHP/MYSQL 查询打印结果

javascript - 如何在 Dreamhouse 示例应用程序安装中输入正确的 oauthurl?

javascript - 查找函数调用的源代码行

php - 我应该如何在 PHP 的多个域之间安全地传输变量/参数?

javascript - 使用 jQuery 修改 iframe URL