因此,随着使用 JavaScript 的新框架的发展,许多人采用了 ECMAScript 6 shim 或 TypeScript,并具有许多新功能。我的问题是:
如何迭代 ES6 类的方法/属性?
例如(与对象)
var obj = {
prop: 'this is a property',
something: 256,
method: function() { console.log('you have invoked a method'); }
}
for (var key in obj) {
console.log(key);
}
// => 'prop'
// => 'something'
// => 'method'
(有课)
class MyClass {
constructor() {
this.prop = 'prop';
this.something = 256;
}
method() {
console.log('you have invoked a method');
}
}
我如何列出方法 MyClass
以及可选的属性?
原文由 Aᴄʜᴇʀᴏɴғᴀɪʟ 发布,翻译遵循 CC BY-SA 4.0 许可协议
constructor
和任何定义的方法都是类的prototype
对象的 不可枚举 属性。因此,您可以获得名称数组(无需构造类的实例):
您不能在不创建实例的情况下获取属性,但是这样做之后您可以使用
Object.keys
函数,该函数仅返回对象的可枚举属性:据我所知,没有标准的方法可以同时从原型和实例的可枚举属性中获取不可枚举的属性。