top | item 11595146

(no title)

colbyAFTrustedK | 9 years ago

Is there a meaningful ? I.e., what does classical inheritance get you that prototypes-under-the-hood don't? For a programmer using classes, that ES's are implemented using prototypes should be as important has how the JVM works.

discuss

order

robocat|9 years ago

Classical inheritance enforces that a method can only be overridden by another method in a subclass.

Prototypical "inheritance" allows different types of values to be assigned to the same symbol.

E.g. if you have a method bob() on a prototype, you can set object.bob = 'astring'; and it isn't an error.

colbyAFTrustedK|9 years ago

That has more to do with a language opting out of having fixed types than it does with class-based versus prototype-based inheritance.