Стоїть завдання реалізувати можливість такого синтаксису на JavaScript: var a = add(2)(3); //5. При чому, потрібно щоб add приймала довільну кількість параметрів (дужок). Логічно, що вона не має впливати на жодні інші математичні чи нематематичні операції та притримуватися пріоритету ((add(2)(3)(4) + add(1) - add(2)(3)); //5, (+('2' + add(0)) + add(1)); //21).
Продовження теми OOP в Javascript. Обасті видимості в Javascript. Як зробити властивості приватними.
Основні принципи Javascript. Як оперувати об'єктами? Як написати простий клас на Javascript? Невеликий пост на дану тему.
- +5
- 08 листопада 2009, 16:53
- kunik
Недавно доводилось працювати з людьми які на дух не переносять наслідування. Всюди де можна і не можна використовували композицію.
Щоб зберегти тверезість розуму вирішив спробувати перелічити коли і що треба використовувати.
Наслідування
1) коли є is-a залежність
2) коли is-a є постійною в часі, тобто стан об'єкту моделюється не класами, а властивостями класу
Композиція
1) коли можливо has-a pалежність
2) коли потрібно перевикористати код
3) коли необхідно поліморфізм, але немає is-a зв'язку — краще використати інтерфейси
4) коли супер клас є недоступним до модифікації (чи може краще зразу адаптер?)
Щодо базових класів — то їх краще зразу оголошувати як abstract щоб потім не було мороки, коли коду багато.
Якісь ще є думки на цю тему?
- +4
- 22 липня 2009, 16:58
- zenyk