Чему тут равен 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>
  • Вопрос задан
  • 104 просмотра
Решения вопроса 2
MrDecoy
@MrDecoy
Верставший фронтендер
this в компоненте vue равен объекту компонента vue.
А если выражаться языком ближе к документации, то this - экземпляр класса Vue, инстанцирование которого приходится на каждый отдельно взятый компонент.

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

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

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