Gar*_*ett 6 javascript reference object
如何更新整个对象,比如说:
var x = {a:1}
function modify(obj) {
obj = {b:2}
}
modify(x)
console.log(x) // {a:1}
Run Code Online (Sandbox Code Playgroud)
但保持参考?我希望在函数外部修改对象.
我的具体案例是lodash.pick在我的函数中使用:
if (whitelist) {
obj = _.pick(obj, whitelist)
}
Run Code Online (Sandbox Code Playgroud)
我似乎无法找到pick修改对象的函数.有没有办法做到这一点,还是我需要开始返回对象的副本?
geo*_*org 11
delete 来自旧对象的所有内容,然后按键添加新属性:
function modify(obj, newObj) {
Object.keys(obj).forEach(function(key) {
delete obj[key];
});
Object.keys(newObj).forEach(function(key) {
obj[key] = newObj[key];
});
}
var x = {a:1}
modify(x, {b:42})
document.write(JSON.stringify(x));Run Code Online (Sandbox Code Playgroud)
如果你想知道这是否是一个好主意,答案是否定的.构造一个新对象,从函数返回并分配 - 这是一种非常优选的方式.
| 归档时间: |
|
| 查看次数: |
7077 次 |
| 最近记录: |