使用删除属性而不影响父对象

nep*_*une 0 javascript

这是两个名为和 的对象primarysecondary

var primary = {"gonna":3,"lol":114,"wouldn":2,"know":6,"lowkey":2,"man":5};
var secondary = primary;
Run Code Online (Sandbox Code Playgroud)

当我使用delete secondary['lol'];它时,它会从两个对象中删除该属性:jsfiddle

我的问题是:如何删除属性secondary而不将其删除primary

Mer*_*ott 5

secondary引用与 相同的对象primaryprimary如果您想将它们分开,则需要创建一个副本。

有些库(例如Lodash)具有实用功能,允许您克隆对象(下面的示例),但也有其他方法

var primary = {"gonna":3,"lol":114,"wouldn":2,"know":6,"lowkey":2,"man":5};
var secondary = _.clone(primary);

delete secondary.lol;

document.write(JSON.stringify(primary));
document.write('<br>');
document.write(JSON.stringify(secondary));
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.1/lodash.js"></script>
Run Code Online (Sandbox Code Playgroud)