Composition juu ya urithi ni kanuni ya kubuni inayotajwa sana — inayopendelea kujenga vitu kwa kuchanganya matatizo (composition) badala ya kurithi kutoka kwa madarasa ya msingi (urithi). Urithi una vikwazo vikubwa ambavyo composition inavizuia, ingawa zote mbili zina mahali yao.
Urithi dhidi ya composition
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
