一个对象怎么可以不可修改?
我有一个返回一个用户对象的mongodb函数调用
User.findOne(condition, function(err, user) { console.log(user) // {username : 'blah', picture : 'blah', _id : 'blah'} delete user.picture; });
不知何故,用户对象不能被修改,删除什么也不做。 如果我深入复制一个全新的用户对象
var new_user = {}; for (var key in user) new_user[key] = user[key]
并做删除那里,它的作品。 有什么情况下,在Javascript中,当一个对象是不可修改的? 还是我错过了什么?
确实。 对象属性可以被冻结 , 不可删除 , 不可数且不可configuration 。 你可以去检查Object.getOwnPropertyDescriptor
。
console.log( Object.getOwnPropertyDescriptor( user, 'picture' ));
例如。
如果可configuration设置为false
,则不能删除该属性。