Consider the following code.
const foo = () => {};
console.log(foo.name); // prints foo
const bar = foo;
console.log(bar.name); // prints foo again
Please point out what is wrong with my reasoning about the statement const foo = () => {};
. The expression () => {}
evaluates to an anonymous function object and the statement binds the name foo
to that object. Surely the value of the expression () => {}
does not know it has name
foo
, but somehow it knows after foo
is bound to it. But how did that happen? I assume that =
does not alter the right-hand side and lines 3 and 4 behave as I expected.