Базовый класс для наследования в JavaScript
Под впечатлением класса разработанного Дином Эдвардсом создал свой собственный класс, который позволяет значительно упростить структуру программ на JavaScript где необходимо неследование.
Основные особенности следующие:
- маленький и простой - неминифицированный размер: 622 байта.
- конструктор описывается явно как функция с именем 'constructor'
- наследование статических и обычных членов класса
- при определениии объекта не используется MyClass.prototype;
- не используются глобальные функции для создания цепочек прототипов;
- не изменяется Object.prototype.
Вот пример использования:
var Animal = BaseClass.extend({ constructor:function(){ alert("Anumal is created!"); }, say:function(){ alert("hm..."); } }); ver Cow = Animal.extend({ constructor:function(){ alert("Cow is created!"); }, say:function(){ alert("mooo"); } }); var cow1 = new Cow(); cow1.say();
Фактически, от версии Дина отличается только отсутствием статических методов на этапе наследования - их можно и явно прикрутить, что улучшит читаемость кода, также отсутствует метод super, на мой взгляд у Дина эта штука будет понижать производительность, перегруженных функций независимо используется super или нет, поэтому я решил от неё отказаться, к тому же её можно эмулировать просто отдельной функцией.
Upd. Позже я пересмотрел мысль насчет super и включил её в реализацию метода. В ztools.org можно найти последнюю версию функции.
разрешены только теги br, font, span, p, strong, u, p, blockquote, a, div, img - остальные будут безжалостно удаляться
комментарии:
Было интересно узнать о языках программирования. Программирование для начинающих, программирование для чайников. http://progalegko.ru