What's the difference between a variable:
const a = console.log;
a('HELLO');
and an arrow function:
const a = (str) => console.log(str);
a('HELLO');
And why in case of using a class member it doesn't work
class MyClass {
    foo;
    str;
    constructor(str, foo) {
        this.str = str;
        this.foo = foo;
    }
    getFoo() {
        return this.foo(this.str);
    }
}
const instance = new MyClass(123, console.log);
// works
const f = (str) => {
    instance.getFoo(str);
}
f('Hello');
// doesn't works -> this.str is undefined
const f = instance.getFoo;
f('Hello');
 
     
    