While there are other instances, let's focus on the length
property for now. Why does it appear as if we're copying it here:
[].hasOwnProperty("length")
//==> true
It is common knowledge that an array's length
property belongs to Array.prototype
, making it easily accessible from any array instance through the prototype chain. So why the apparent duplication? Could this be related to a specific browser implementation? (The code example above was tested in the Chrome console). And even according to MDN: "...methods and properties are not copied from one object to another in the prototype chain. They are accessed by walking up the chain..."