Вариант использования, о котором вы говорите, известен как дифференциальное наследование: надмножество наследования классов. Первая зарегистрированная объектно-ориентированная система, Sketchpad Ивана Сазерленда (1962), использовала динамическое делегирование для реализации дифференциального наследования.

(Это система, которая вдохновила Алана Кея на создание ООП в Smalltalk, которое положило начало безумному использованию ООП 80-90-х годов).

Я использовал делегирование, чтобы избежать проблем с памятью в видеоиграх.

Классы ES6 используют статическое делегирование для реализации иерархии классов, но не путайте делегирование с наследованием классов. Важна не техника, а образ мышления: составление из составных частей или наследование из монолита. Для реализации обоих часто используются одни и те же методы. Одинаковый синтаксис / грамматика, разная семантика.

Использование делегирования не означает, что мы также должны использовать отношения «Is-A» (наследование классов). Вопреки вашей точке зрения, «Is-A» против «Has-A», «Uses-A» или «Can-Do» не влияет на то, как экземпляр и общие данные хранятся или доступны. (Внутреннее или внешнее состояние).

Короче говоря, вам не нужно наследование классов, чтобы делать то, о чем вы говорите.