Страницы

Поиск по вопросам

понедельник, 15 апреля 2019 г.

Использование this в return

Есть код подобного вида:
function test() { return { foo: 2, bar: 3, value: this.foo + this.bar } }
Почему this не ссылается на нужный объект?


Ответ

Вычисление выражения this.foo + this.bar происходит в контексте функции test. Вы не можете в момент создания нового объекта обращаться к его свойствам.
Добиться похожего результата можно так:
function test() { return { foo: 2, bar: 3, get value() { return this.foo + this.bar; } }; } console.log(test().value);
В таком случае значение свойства value будет вычисляться динамически.

Комментариев нет:

Отправить комментарий