Let's summarize the most important topics you have learned in this chapter:
All functions have a property called
prototype
. Initially, it contains an empty object-an object without any own properties.You can add properties and methods to the
prototype
object. You can even replace it completely with an object of your choice.When you create an object using a function as a constructor (with
new
), the object gets a secret link pointing to the prototype of the constructor and can access the prototype's properties.An object's own properties take precedence over a prototype's properties with the same name.
Use the
hasOwnProperty()
method to differentiate between an object's own properties andprototype
properties.There is a prototype chain. When you execute
foo.bar
, and if yourfoo
object doesn't have a property calledbar
, the JavaScript interpreter looks for abar
property in the prototype. If none is found, it keeps searching in the prototype's prototype, then the prototype of the prototype...