JavaScript删除object.property不工作

我想删除一个对象的属性,但该属性不会被删除…

我拥有的:

var tagFound = yield tags.findById(this.params.tagId); debug('prior delete: %j', tagFound); delete tagFound.password; debug('after delete: %j', tagFound); 

我得到:

 api_v1 prior delete: {"_id":"55e064e9727b44c32a262c0f","expires":"2015-08-29T13:40:57.673Z","password":"$2a$08$hucJyHIU5gholAB1L.wVKeFoTmvFho9xFiJAAvmwmtKphLuJ9Hq4K","type":"free","name":"teste","__v":0,"visible":true,"locations":[{"latitude":65.9667,"longitude":-18.5333,"_id":"55e064e9727b44c32a262c10","timestamp":"2015-08-28T13:40:57.572Z"}]} api_v1 after delete: {"_id":"55e064e9727b44c32a262c0f","expires":"2015-08-29T13:40:57.673Z","password":"$2a$08$hucJyHIU5gholAB1L.wVKeFoTmvFho9xFiJAAvmwmtKphLuJ9Hq4K","type":"free","name":"teste","__v":0,"visible":true,"locations":[{"latitude":65.9667,"longitude":-18.5333,"_id":"55e064e9727b44c32a262c10","timestamp":"2015-08-28T13:40:57.572Z"}]} 

也许我的眼睛太累了,但我根本无法弄清楚,有没有人看到我在这里失踪的事情?

更新:我把这个到http://jsfiddle.net/fc8mohwp/ ,问题是,它在那里工作,但不在这里(iojs)。 应该有什么区别?

某些variables不能被删除,这取决于它们如何声明的上下文。 例如,不能删除在全局范围内定义的variables。

我讨厌发布一个链接的答案,但是这个博客文章描述了使用delete的所有规则和边缘情况。 对于我而言,包括在SOpost中是相当有点儿的

在Javascript中使用删除

这可能有多个原因,例如密码字段不能更改或者密码字段来自原型链。

你可以用Object.getOwnPropertyDescriptor(tagFound, 'password');来debugging它Object.getOwnPropertyDescriptor(tagFound, 'password');

您可以使用delete操作符从javascript对象中删除属性

删除myObject.proportyname;