The problem here is that when z
is invoked it prints undefined
. But when I change the declaration of variable x
with var x
, instead of let x
, it prints 10
. So, what is the difference when using 'this' keyword with var
and let
in this code.
let x = 10;
let y = {
x: 90,
getX: function() {
return this.x;
}
}
console.log(y.getX()); // 90
let z = y.getX;
console.log(z()); // undefined