一个对象怎么可以不可修改?

我有一个返回一个用户对象的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 ,则不能删除该属性。