鉴于这两个类
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;
}
};
}