>>function Foo(){this.a = "a"}
>>var foo = new Foo()
>>Object.getOwnPropertyDescriptors(foo)
a: {value: "a", writable: true, enumerable: true, configurable: true}
__proto__: Object
>>foo.hasOwnProperty("__proto__")
false
I understand line 8's result.
But I think there is some information stored in the foo that tells JS Engine which function create foo.
Maybe foo has a hidden property tell JS Engine Foo creates foo, or maybe there is a list stored in the memory that record Foo creates foo.
What's the fact? How does JS Engine know foo is an instance of Foo but no Array?