@illaaa

Зачем нужны set, get?

Я изучаю js, не понимаю, зачем нужны get, set

Вот пример:
const human = {
  name: 'Andrew',

  getName1() {
    return this.name
  },
  get getName2() {
    return this.name
  }
}

console.log(human.getName2)
console.log(human.getName1())

const humanName2 = human.getName2
console.log(humanName2)
const humanName1 = human.getName1()
console.log(humanName1)


Во всех случаях возвращается одинаковый результат. Касательно set примерно тот же вопрос.
Сомневаюсь, что суть именно в том, чтобы не писать скобочки.
  • Вопрос задан
  • 143 просмотра
Решения вопроса 3
profesor08
@profesor08 Куратор тега JavaScript
const human = {
  name: 'Andrew',

  getName1() {
    return this.name
  },
  get getName2() {
    // в момент получения можно что-то сделать
    console.log(123);
    return this.name
  }
}


Аналогично и с set, можно обработать, или что-то сделать.
Ответ написан
Комментировать
sergiks
@sergiks Куратор тега JavaScript
♬♬
Можно делать «несуществующие» вычисляемые свойства:
const human = {
  first_name: 'Andrew',
  last_name:  'Poopkin',

  get fullname() {
    return `${this.first_name} ${this.last_name}`;
  }
}

human.fullname   // "Andrew Poopkin"
Ответ написан
Комментировать
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Ну вот из самого простого, что нельзя сделать с функцией, но можно с get/set:
obj.field++;
obj.field += 5;
const variable = obj.field = 10;


Или еще пример, вот было у нас
const human = {
  name: 'Andrew'
};
Мы уже в коде много где использовали это поле как поле, и вдруг понадобилось делать что-то, когда это поле меняется, что проще, сделать сеттер или поменять весь остальной код?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы