Показать сообщение отдельно
  #291 (permalink)  
Старый 29.09.2015, 16:55
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Как сделать свойства перебираемыми при описании геттеров/сеттеров 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"]
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием