【发布时间】:2016-01-07 20:19:06
【问题描述】:
给定这两个类
class Foo{
f1;
get f2(){
return "a";
}
}
class Bar extends Foo {
b1;
get b2(){
return "a";
}
}
let bar = new Bar();
什么代码可以从bar 实例中得到这个属性列表? ['f1', 'f2', 'b1', 'b2']
更新
这应该是@Marc C 回答的一部分:
使用装饰器,我可以轻松地将不可枚举的属性变成可枚举的属性:
class Bar extends Foo {
@enumerable()
get b2(){
return "a";
}
}
这里是装饰器源码:
function enumerable() {
return function(target, key, descriptor) {
if (descriptor) {
descriptor.enumerable = true;
}
};
}
【问题讨论】:
-
老实说,这看起来像是 stackoverflow.com/questions/31054910/get-functions-of-a-class 的翻版。没有理由使属性可枚举。
-
babel: “Python 国际化库,重点是基于 Web 的应用程序。有关 JavaScript 库的问题,请使用 [babeljs]。”
标签: javascript ecmascript-next