Сообщение от Octane
|
Кстати, тут ни разу не множественное наследование, у тебя всегда один суперкласс.
|
Согласен. Я выразился не совсем точно. Следовало бы переименовать в "многоуровневое" (например).
А нативного множественного наследования в js нет, только mixin'ы.
Сообщение от Octane
|
Можно подробнее в чем проблема?
|
следуя общепринятым соглашениям по наименованию, с больших букв пишутся имена "классов". А раз это класс - это функция, следовательно можно использовать оператор new:
var Animal = {};
var Cat = Object.create(Animal);
var obj = new Cat();
console.log(obj);
Конечно, тут можно заявлять, что встроенные операторы языка нам не нужны, но если они есть, почему бы ими не воспользоваться?
Т.е. ты ломаешь то, что заложено в язык и к чему привыкли js-разработчики.
Сообщение от Octane
|
Да дескрипторы у тебя это так наворот к классическому примеру с наследованием
|
скорее как сахар. Признаться, я их тоже не люблю, но в одном проекте потребовались
Вместе с тем, считаю очень удобным то, что, например, приватные свойства
this._property;
можно делать неперебираемыми.
Сообщение от Octane
|
Либо инициализирующий метод, либо отдельно set-метод для каждого свойства/группы свойств, что мне кажется лучше. Это намного нагляднее, чем искать что там произошло после super.apply.
|
1. "Либо инициализирующий метод" та же функция конструктор
2. "либо отдельно set-метод для каждого свойства/группы свойств, что мне кажется лучше" не вижу причин, по которым нельзя сделать те же самые сет-методы в "стандартной" реализации
Впрочем, сколько людей, столько и мнений