наследование в js
Так сколько же видов наследования можно реализовать в js?
В одной из вакансий сказано, что претендент, будучи разбуженным в 3 часа ночи, должен рассказать, как минимум, про 3 типа наследования :lol: . так сколько же их? где почитать про все виды наследования? где написано все про объекты и наследование? посоветуйте книги, ресурсы |
Не ходите в ту контору, там идиоты. Нормальная контора в 3 часа ночи требует от претендента найти все типы наследования за 3 минуты. А вы отпостили вопрос на форум вчера в 21:59, так что мы вам перезвоним.
Впрочем, скорее всего вы им подойдете. Все типы наследования тут javascript ptototype |
Цитата:
o=Object.create({a: 1}) alert(o.a) // 1 // o унаследовал a от прототипа Второй -- псевдоклассы O=function(){this.a=10} O.prototype.b=11 o=new O alert([o.a, o.b]) // [ 10, 11 ] // o унаследовал a от своего "класса", a b -- от прототипа Причем, это расширение первого, можно сказать, его частный случай. Оба они основаны на делегировании прототипу. Остальное -- это уже свободное творчество. JS очень гибкий язык, на нем можно реализовать любую модель, фактически. Вот например, реализуем класс-like ООП на замыканиях: supClass=function(){ var a = 100 return function(b){return function(arg) {return eval(arg)}} } Class=supClass() o=Class(1000) alert([o("a"), o("b")]) // [ 100, 1000 ] // o унаследовал a от supClass a, b от Class Часто встречаются различные реализации классовой модели, миксины, тоже можно считать моделью наследования, в принципе. Но самая мощная модель, это как раз нативная. Она заимствована из селфа и смолтока -- мощнейших языков, поэтому стоит именно ее изучить, и ее придерживаться в основном (чего, к сожалению, массово не происходит). Что касается литературы, то с ней туго. Кое что есть у Фленагана, но мало. Встречал в инете книжку "Javascript Speccore" по-моему называется, там, как раз об ООП в JS, но не читал, ничего не могу сказать о качестве. Это единственное что я видел по теме. Сейчас идет массовая пропаганда быдло-фп-стиля, в JS, поскольку, такой стиль хорошо анализируется, легче писать компиляторы, поэтому, власти скрывают, можно сказать. Никому не нужны высокоуровневые абстракции, всем выгодно, чтобы на JS писали "предсказуемо" и "поддерживаемо". А Ъ-стайл плохо оптимизируется и плохо поддерживается (в смысле, энтерпрайзу приходится нанимать кого-то помимо мартышек, чтобы поддерживать код -- ненужно). Положение усугубляется тем, что много прогеров приходит из статических ЯП, а им такая ситуация только на руку. Поэтому JS деградирует потихоньку. Вот такая печальная история. |
Часовой пояс GMT +3, время: 14:27. |