Задать вопрос
@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 примерно тот же вопрос.
Сомневаюсь, что суть именно в том, чтобы не писать скобочки.
  • Вопрос задан
  • 144 просмотра
Подписаться 1 Простой 2 комментария
Решения вопроса 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'
};
Мы уже в коде много где использовали это поле как поле, и вдруг понадобилось делать что-то, когда это поле меняется, что проще, сделать сеттер или поменять весь остальной код?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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