It evaluates to false because you're comparing two different objects: new will create a new object.
Related post: What is the 'new' keyword in JavaScript? Which explains in its (extensive) answer:
It [new] is 4 things:
- It creates a new object. The type of this object, is simply object.
- It sets this new object's internal, inaccessible, [[prototype]] property to be the constructor function's external, accessible,
prototype object (every function object automatically has a prototype property).
- It executes the constructor function, using the newly created object whenever
this
is mentioned.
- It returns the newly created object, unless the constructor function returns a non-primitive value. In this case, that
non-primitive value will be returned.