I was working through a JS newsletter which had a little quiz for what would be the output of the following program:
window.name = "Mike Tyson";
const me = {
name: "Tyler",
sayName(): {
console.log(this.name);
},
};
const sayName = me.sayName;
sayName();
Why does this print "Mike Tyson" instead of "Tyler"? When I set a variable (sayName) equal to an object method, I had thought the variable would be referencing the name variable inside the object it is defined in since it would close over its lexical scope even when called outside it (can confirm me.sayName() does print "Tyler").
My understanding of variables referencing objects & functions must be incorrect