因此,随着使用 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))
class MyClass {
constructor() {
this.prop = 'prop';
this.something = 256;
}
method() {
console.log('you have invoked a method');
}
}
如何列出 MyClass
具有的方法,以及可选的属性?
最佳答案
构造函数
和任何已定义的方法都是类的prototype
对象的不可枚举 属性。
因此,您可以获得名称数组(无需构造类的实例):
Object.getOwnPropertyNames(MyClass.prototype)
如果不创建实例就无法获取属性,但是创建实例后您可以使用 Object.keys
函数,该函数仅返回对象的可枚举属性:
Object.keys(myInstance)
据我所知,没有标准的方法可以同时获得原型(prototype)的不可枚举属性和实例的可枚举属性。
关于javascript - 遍历 ES6 类的方法和属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37771418/