I have a mongodb function call that return a user object
User.findOne(condition, function(err, user) {
console.log(user) // {username : 'blah', picture : 'blah', _id : 'blah'}
delete user.picture;
});
somehow user object cannot be modified, delete does nothing. If I deep copy a brand new user object
var new_user = {};
for (var key in user)
new_user[key] = user[key]
and do the deletion there, it works. Is there any situation where in Javascript when a object is not modifiable? Or did I miss something?
Indeed. Object properties can be made frozen, undeletable, unenumerable and not configurable. You can go check with Object.getOwnPropertyDescriptor
.
console.log( Object.getOwnPropertyDescriptor( user, 'picture' ));
For instance.
If configurable is set to false
, you can't delete that property.