Komponiranje pred dedovanjem je splošno priznan princip oblikovanja — favorizira gradnjo objektov z kombiniranjem obnašanj (komponiranje) namesto dedovanja od osnovnih razredov (dedovanje). Dedovanje ima precejšnje slabosti, ki jih komponiranje izogiba, čeprav imata oba svoje mesto.
Dedovanje v primerjavi s komponentjem
INHERITANCE → a class EXTENDS another, inheriting its behavior ("IS-A" relationship):
class Dog extends Animal
COMPOSITION → a class is BUILT FROM other objects/behaviors ("HAS-A" / uses):
class Car { constructor() { this.engine = new Engine(); } } // composes behaviors
→ composition: combine smaller pieces; inheritance: derive from a parent
