Как достучатся до полей класса находясь в функции метода? class Foo {
constructor(){
this.defaults = '123'
}
init() {
function bar(){
console.log(this.defaults); // тут не видно
}
}
}Как получить значение НЕ делая функцию стрелочной?

21 Авг 2019 в 07:00
165 +1
0
Ответы
1

Чтобы получить доступ к полям класса внутри функции метода, можно использовать стрелочную функцию, которая не создает собственный контекст this и обращается к this из внешней области видимости:

class Foo {
constructor(){
this.defaults = '123'
}
init() {
const bar = () => {
console.log(this.defaults); // здесь видно
}
bar();
}
}
const foo = new Foo();
foo.init(); // выводит '123' в консоль

В данном примере функция bar объявлена как стрелочная функция, что позволяет получить доступ к полю defaults класса Foo.

20 Апр 2024 в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир