Как сделать свойства перебираемыми при описании геттеров/сеттеров es6?
'use strict';
const __PROP = Symbol();
class Foo {
constructor() {
this.prop = 1;
}
get prop() {
return this[__PROP];
}
set prop(value) {
this[__PROP] = value;
}
}
let bar = new Foo();
console.log(bar.prop); // 1
console.log(Object.keys(bar)); // []
Это возможно БЕЗ пронографии вида?
'use strict';
const __PROP = Symbol();
class Foo {
constructor() {
Object.defineProperty(this, 'prop', {
enumerable: true,
get() {
return this[__PROP];
},
set(value) {
this[__PROP] = value;
}
});
this.prop = 1;
}
}
let bar = new Foo()
console.log(bar.prop); // 1
console.log(Object.keys(bar)); // ["prop"]