javascript - 为什么我不能迭代类原型?
问题描述
我有以下非日志记录代码:
class test {a(){}}
for(const a in test.prototype)
console.log(a)
任何想法为什么 - 如果我调试它,我可以看到 test.prototype 中的方法
我正在使用nodejs。
解决方案
通过class
声明在原型对象上创建的方法被隐式地设为不可枚举。您可以自己为任何对象执行此操作:
function Constructor() { }
Object.defineProperty(Constructor.prototype, "a", {
value: function() { },
enumerable: false
});
(enumerable
andwritable
标志是false
默认的,所以你甚至不必明确地包含它。)
推荐阅读
- google-maps - 如何在 Flutter 中更改谷歌地图的默认瓷砖颜色/地图背景颜色?
- javascript - 在模板文字中使用条件的问题
- sql - 使用空处理求和时间戳差异的 SQL 查询
- c++ - 即使没有继承,dynamic_cast 也能工作吗?
- c# - 尝试将值输入列表的特定索引时出现 ArgumentOutOfRangeException?
- java - 当应用程序中没有流量时如何在 logback 中强制推出
- git - Jenkins Git 参数插件 branchFilter 正则表达式
- flutter - 如何从另一个小部件推送和弹出一个小部件(B 从 A 的转换)
- ruby - errno::eacces: 上传 jpg 时权限被拒绝@rb_sysopen
- flutter - 卡片上的 Flutter Text 叠加层