为什么我不能遍历类原型?

时间:2018-11-21 13:59:10

标签: javascript prototype

我有以下非登录代码:

class test {a(){}}

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

为什么有任何想法-如果我对其进行调试,我可以看到test.prototype内部的方法

我正在使用nodejs。

1 个答案:

答案 0 :(得分:3)

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

function Constructor() { }

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

({enumerablewritable标志在默认情况下为false,因此您甚至不必显式包含它。)