首页 > 解决方案 > 为什么我不能迭代类原型?

问题描述

我有以下非日志记录代码:

class test {a(){}}

for(const a in test.prototype)
    console.log(a)

任何想法为什么 - 如果我调试它,我可以看到 test.prototype 中的方法

我正在使用nodejs。

标签: javascriptprototype

解决方案


通过class声明在原型对象上创建的方法被隐式地设为不可枚举。您可以自己为任何对象执行此操作:

function Constructor() { }

Object.defineProperty(Constructor.prototype, "a", {
  value: function() { },
  enumerable: false
});

enumerableandwritable标志是false默认的,所以你甚至不必明确地包含它。)


推荐阅读