Object.prototype.prefixKeys = function (prefix) {
for (var key in this)
this.hasOwnProperty(key)
&& Object.defineProperty(this, prefix + key, {value: this[key]})
&& delete this[key]
}
以上代码在chrome控制台中按预期工作。但只需删除Node v6.10.2中的密钥。我做错了什么?
答案 0 :(得分:3)
对象上仍然存在带前缀的键,但如果您希望它们显示在您身上,比如console.log(obj)
,那么您需要创建属性enumerable
:
Object.prototype.prefixKeys = function (prefix) {
for (var key in this)
this.hasOwnProperty(key)
&& Object.defineProperty(this, prefix + key, {
value: this[key],
enumerable: true
})
&& delete this[key]
}