Σύνθεση έναντι κληρονομικότητας είναι ένας ευρέως αναγνωρισμένος αρχή σχεδιασμού — που ευνοεί την κατασκευή αντικειμένων με συνδυασμό συμπεριφορών (σύνθεση) αντί να κληρονομούν από βασικές κλάσεις (κληρονομικότητα). Η κληρονομικότητα έχει σημαντικά μειονεκτήματα που η σύνθεση αποφεύγει, αν και και τα δύο έχουν τη θέση τους.
Κληρονομικότητα έναντι σύνθεσης
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
