javascript - 使用 defineProperty 重命名的 JS 键在 Node.js 中不起作用

标签 javascript node.js

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 中的 key 。我做错了什么?

最佳答案

前缀键仍然存在于对象上,但是如果您希望它们在您说console.log(obj) 时显示,那么您需要使属性可枚举:

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]
}

关于javascript - 使用 defineProperty 重命名的 JS 键在 Node.js 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43976077/

相关文章:

javascript - 暂停部分并在 div 内滚动

node.js - npm Firebase-Admin 在 AWS EC2 上的 messages.send() 上返回 502

node.js - 我的 npm-lint 抛出错误 "missing script: lint"

javascript - 如何在 AWS DynamoDB 中按排序键查询?

javascript - 将回调函数传递给 onclick 事件

javascript - 从不同的页面访问打开的窗口

node.js - 使 babel 排除测试文件

javascript - 检查目标文件是否已存在

javascript - 按 HTML 元素的标签 ID 对 HTML 元素进行排序

JavaScript: "SyntaxError: missing ) after argument list"文件最后一行