Задать вопрос

Чему тут равен this?

Речь о строчке
this.$emit("update:modelValue", event.target.value);

Чему в ней равен this?

В гугле ответа не нашел, вернее там СЛИШКОМ много ответов на этот вопрос, которые так просто не отвечают на мой вопрос, т.к. слишком много путаницы с этим this и в результате за час чтения у меня только путаница в голове.

this - это контекст выполнения, но чему он равен тут?

Я привык, что this - это объект перед точкой, который вызывает метод. Но тут вообще как-то не пойму, как этот тезис для this применить в такой ситуации. Т.е. какому тут объекту равен this?

<template>
  <select :value="modelValue" @change="updateValue">
    <option disabled value="">Выберите из списка</option>
    <option v-for="option in options" :key="option.value" :value="option.value">
      {{ option.name }}
    </option>
  </select>
</template>

<script>
export default {
  name: "my-select",
  props: {
    modelValue: {
      type: String,
    },
    options: {
      type: Array,
      default: () => [],
    },
  },
  methods: {
    updateValue(event) {
      this.$emit("update:modelValue", event.target.value);
    },
  },
};
</script>

<style scoped></style>
  • Вопрос задан
  • 108 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
MrDecoy
@MrDecoy
Верставший фронтендер
this в компоненте vue равен объекту компонента vue.
А если выражаться языком ближе к документации, то this - экземпляр класса Vue, инстанцирование которого приходится на каждый отдельно взятый компонент.

То есть если у Вас есть компонент кнопки и на странице их несколько, то на каждую кнопку свой инстанс и this равен этому конкретному инстансу.
Ответ написан
Stalker_RED
@Stalker_RED
Напишите на строку выше
console.log('вот он, этот this', this); и посмотрте чему он равен.
Еще более сильное колдунство - поставить брейкпоинт на эту строчку, но это надо хоть полторы странички инструкции прочесть.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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