Как достучатся до полей класса находясь в функции метода? class Foo { constructor(){ this.defaults = '123' } init() { function bar(){ console.log(this.defaults); // тут не видно } } }Как получить значение НЕ делая функцию стрелочной?
Чтобы получить доступ к полям класса внутри функции метода, можно использовать стрелочную функцию, которая не создает собственный контекст 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.
Чтобы получить доступ к полям класса внутри функции метода, можно использовать стрелочную функцию, которая не создает собственный контекст 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.