javascript - jQuery 'delete' 运算符还会删除先前设置的对象

标签 javascript jquery delete-operator

你好,这是我的问题:

当我用另一个对象设置一个对象时,如下所示:

a = {"first":1, "second":2};
b = a;

然后我从“a”对象中删除一个属性,它也会从“b”对象中删除该属性。

delete a.second;

这是jsFiddle

最佳答案

并且它删除它,因为通过执行b = a,您不会克隆对象a,而只是复制引用,所以实际上 b 引用了同一个对象 a

要克隆对象,您可以使用 jQuery 方法 $.extend :

var a = { first: 1, second: 2 };
var b = $.extend({}, a);

delete a.second;

console.log(a);  // Object {first: 1}
console.log(b);  // Object {first: 1, second: 2} 

关于javascript - jQuery 'delete' 运算符还会删除先前设置的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22257763/

相关文章:

javascript - 嵌套 View Controller 和 ng-click - AngularJs

javascript - 为什么 $.each 使数组对象未定义,但 for 循环有效

javascript - 在调整窗口大小之前,在 ready 上应用 CSS 无法正确呈现

c++ - 面试中用C++写了两个分配和释放int数组的函数

mysql - Mysql语法错误删除带条件的触发器

javascript - Promise.all() 返回未定义的 Promise <Pending> 数组,尽管类似的解决方案返回成功的替代方案

javascript - Fancybox v2.1.1 改变边框颜色

javascript - 在 Javascript 中覆盖警报和确认

javascript - 如何在更新集合时更新模板的一部分?

c++ - 分配字符串时 char* new 和 delete [] 错误