@dmitry-toster

Как сделать, чтобы this указывал на текущий объект?

У объекта ведь свой this и мы обращаемся к нему напрямую:
const obj = {
    foo: 'bar',
    bar: this.foo
}

obj.bar // undefined. Почему? Как через `this` сделать, чтобы было 'bar'?

Я добился этого через геттер.
const obj = {
    foo: 'bar',
    get bar() {
        return this.foo
    }
}

obj.bar // bar

Но меня интересует почему это не работает в первом варианте?
  • Вопрос задан
  • 159 просмотров
Пригласить эксперта
Ответы на вопрос 1
Robur
@Robur
Знаю больше чем это необходимо
меня интересует почему это не работает в первом варианте?

потому что и не должно.
Там происходит совсем не то что вы думаете, а чтобы то, что вы думаете соответствовало реальности, вам нужно прокачивать навык понимания JS.

в строке bar: this.foo значение this относится к тому месту где все это происходит и не имеет никакого отношения к obj.

этот код эквивалентен:
const x = this.foo
const obj = {
    foo: 'bar',
    bar: x
}

подумайте, почему x==undefined, и поймете что происходит у вас.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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