Javascript. ООП. Області видимості тема-посилання

Продовження теми OOP в Javascript. Обасті видимості в Javascript. Як зробити властивості приватними.

Javascript. ООП тема-посилання

Основні принципи Javascript. Як оперувати об'єктами? Як написати простий клас на Javascript? Невеликий пост на дану тему.

Композиція vs Наслідування

Недавно доводилось працювати з людьми які на дух не переносять наслідування. Всюди де можна і не можна використовували композицію.
Щоб зберегти тверезість розуму вирішив спробувати перелічити коли і що треба використовувати.

Наслідування
1) коли є is-a залежність
2) коли is-a є постійною в часі, тобто стан об'єкту моделюється не класами, а властивостями класу

Композиція
1) коли можливо has-a pалежність
2) коли потрібно перевикористати код
3) коли необхідно поліморфізм, але немає is-a зв'язку — краще використати інтерфейси
4) коли супер клас є недоступним до модифікації (чи може краще зразу адаптер?)

Щодо базових класів — то їх краще зразу оголошувати як abstract щоб потім не було мороки, коли коду багато.

Якісь ще є думки на цю тему?