Consider for example
const myObject = {
    foo: 'foo',
    bar: {
         foo: 'bar',
         baz: function () { console.log( this.foo ) },
    }
};
myObject.bar.baz(); // Prints 'bar'
Whereas with arrow operator it produces
const myObject = {
     foo: 'foo',
     bar: {
          foo: 'bar',
          baz: () => console.log( this.foo ),
     }
};
myObject.bar.baz(); // Prints 'undefined'
Can anyone please explain why behaviour is different ?
I know that arrow functions are lexically scoped, but unable to understand reference to this
