What is the problem with putting arrays or objects on the prototype in JavaScript?
They are shared by all instances. If one instance modifies the array (push), all instances see the change. Define arrays and objects in the constructor (this.items = []), not on the prototype.
Verify This Answer
Cross-check this information using these trusted sources:
More FAQs in Prototype Best Practices and Pitfalls
No. Modifying Object.prototype or Array.prototype breaks all objects in the entire application. It can conflict with other libraries and cause subtle bugs. Never modify built-in prototypes.
They are fragile (changes in the base class affect all descendants), hard to maintain (difficult to understand the full chain), and tightly coupled. Prefer composition (mixing objects) over deep inheritance.
Because Child.prototype = Object.create(Parent.prototype) replaces the entire prototype, including the constructor property. Without setting it back, childInstance.constructor would point to Parent, not Child. Set Child.prototype.constructor = Child.
Still have questions?
Browse all our FAQs or reach out to our support team
