Почему если вывести компоненту с помощью this он ее выведет в виде массива, а без нее в виде текста ? JS

Есть код:

const video = {
            title: 'a',
            play() {
                console.log(this);
            }
        };
        video.play();

В консоли выводит: {title: 'a', play: ƒ}

Если вместо this, написать просто video.play, выведет: a

По сути я вызываю ту же константу, но в результате данные отличаются, почему так это особенности JS или я чего-то не понимаю ?


Ответы (1 шт):

Автор решения: Iurii
const video = {}

это объект

play() {}

это функция которая создаётся внутри объекта и применяется к этому объекту (метод).

video.play();

Выполнить метод "play" для объекта "video".

play(){
  console.log(this)
  }

В данном случае, "this" это обращение к объекту внутри которого выполняется эта строка кода, к объекту "video". Дословно:

    показать в консоли(этот объект)

Хорошая статья на Хабре про "this"

→ Ссылка