Наблюдатели и вычисляемые свойства — функция полученияJavascript

Форум по Javascript
Ответить
Anonymous
 Наблюдатели и вычисляемые свойства — функция получения

Сообщение Anonymous »

Я изучал Vue для своего проекта (Composition API), и до сих пор есть одна вещь, которую я не могу уяснить. Допустим, у нас есть реактивный объект:

const obj = reactive({ count: 0 })

И я хочу добавить к нему наблюдателя. В документации говорится, что я не могу напрямую просматривать свойство объекта следующим образом:

watch(obj.count, (count) => { console.log(count) })
И вместо этого скажите нам использовать функцию получения:

watch( () => obj.count,

То же самое с вычисляемые свойства - используется та же нотация стрелочной функции.

Может ли кто-нибудь объяснить более подробно, что такое функция «getter» и как именно она работает?
Может быть, это потому, что у меня нет такого опыта работы с простым JS, но, насколько мне известно, существует понятие методов get и set, которые вы могли бы добавить в определение объекта (https://www.w3schools.com/js/js_object_accessors.asp), которые не являются обязательными, но которые дают вам некоторые побочные преимущества при использовании.
Но здесь, в нашем примере Vue, мы не указываем какие-либо методы get или set в нашем объекте (?)

Код: Выделить всё

const obj = reactive({ count: 0 })

Добавляет ли Reactive/ref Vue их «под капотом»?

Имеют ли эти добавленные методы get те же имена, что и свойства? Например:

count: 0,

get count() { return this.count

Или мы на самом деле «создаем» «геттер» на лету с помощью () => obj.count (= function (){ return obj.count (?)

Или это не имеет ничего общего с JS-геттерами, и мы просто называем это «функцией-геттером», тогда как это просто функция, которая возвращает значение свойства объекта (в этом случае я не совсем понимаю, почему мы не можем обратиться к свойству объекта напрямую без функции).
Извините, если это вопрос для начинающих, думаю, мне здесь нужен ELI5.

Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/798 ... r-function
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»