Выкладки и демонстрационный пример уже доступны на https://github.com/matraska23/es5_inheritance_implementation
Реализация использует возможности Object.create() и ряд других новых методов появившихся в ES5. Поэтому в отличие от аналогичного механизма применяемого в Backbone отличается:
- объект потомка проходит проверку на instanceof для всех объектов предков (т. е. поддерживается реализация цепочки из объектов предков);
- имеется возможность для переопределения методов объекта и в вызова метода предков;
- IE8 не поддерживается (а он вам нужен?).
function inherit(Constructor, Base, extendProperties){ var buf = Constructor.prototype; Constructor.prototype = Object.create(Base.prototype, extendProperties); Constructor.prototype._base = Base; _.extend(Constructor.prototype, buf); return Constructor; }
Метод _.extend() осталось заменить на свою реализацию для 100% независимости от сторонних библиотек
Комментариев нет:
Отправить комментарий