evgeniy8705
@evgeniy8705
Повелитель вселенной

Как лучше создавать геттеры и сеттеры в JS?

Как лучше создавать функции доступа? через метод Object.defineProperty или просто создавать геттеры и сеттеры в самом объекте?

PS. В чем разница между этими подходами?
  • Вопрос задан
  • 534 просмотра
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
сравните
function Foo(bar) {
    this.bar = bar;
}
Object.defineProperties(Foo.prototype, {
   a: {
       value: function () {
           return this.bar;
       }
   },
   b: {
       get: function () {
           return this.bar;
       }
   }
}

var foo = new Foo('bar');

foo.a() // 'bar';
foo.b //'bar';


Но в целом геттеры в 90% случаев это плохо и их следует избегать. В контексте js их единственное оправдание - отсутствие модификаторов доступа и необходимость делать имутабельные объекты (по сути ради readonly свойст).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы