This is b/c of the way hidden classes are managed in V8. While deleting properties of an object is going to be slower (destroying the hidden class hierarchy), modifying their type ({ object|number|... => undefined}) is also going to cause performance hits (extending the hidden class hierarchy and/or creating polymorphic call sites). My preferred method for both performance and readability is to return a new object with just the properties that I want: `var o = _.omit(gallery, 'publishHistory', 'id', 'photos'); .