пофиксил, ускорил скорость работы) добавил поддержку статических, приватных и даже публичных свойств =)
function Class( description ) {
return Class.extend( description );
}
Class.prototype['constructor'] = function() {};
Class['extend'] = function( description ) {
description = parse( description );
description.prototype = this.prototype;
var prototype = new description( description.prototype, constructor );
var _constructor = prototype['constructor'];
function constructor() {
return _constructor.apply( this, arguments );
}
constructor.prototype = prototype;
constructor['extend'] = this['extend'];
return constructor;
};
function parse( description ) {
var code = description.toString().match( /\{([\s\S]*)\}$/ )[1];
code = parentSupport( code );
code = privateSupport( code );
code = publicSupport( code );
return new Function( 'parent,static', code );
}
function parentSupport( code ) {
var regExp = /\bparent\b\s*\.\s*(\w+)\s*\((.*?)\)/img;
code = code.replace( regExp, function( match, method, params ) {
var separator = /\S/.test( params ) ? ',' : '';
return 'parent.' + method + '.call(this' + separator + params + ')';
} );
return code;
}
function privateSupport( code ) {
var fix = '___';
var regExp = /\bprivate\b.([\w_]+)/img;
code = code.replace( regExp, function( match, prop ) {
return 'this.' + fix + prop + fix;
} );
return code;
}
function publicSupport( code ) {
var regExp = /\bpublic\b.([\w_]+)/img;
code = code.replace( regExp, function( match, prop ) {
return 'this.' + prop;
} );
return code;
}
//######################################################## static
var Cat = new Class( function() {
this.constructor = function() {
static.cnt++
}
static.cnt = 0
} )
new Cat();
new Cat();
new Cat();
alert( Cat.cnt ) // 3
//######################################################## private
var Cat = new Class( function() {
public.name = 'Cat'
private.age = 11;
} );
var q = new Cat();
alert( q.name ); // Cat
alert( q.age ); // undefined
|
если кто не понял, это все шутка :yes: потому как пилить норм парсер мне влом) мне ни разу не встречалась необходимость в наслеовании классов если честно за всю жизнь. Ну ни разу вот, например ни разу не приходилось наследовать что-то от евент эмиттера, я все делаю проще просто. Если появляется необходимость в наследовании, значит - сделал сложно, и я переделываю.
|
жалко правда эти васяны не разрешают использовать слово super. вообще вымораживает, могли бы и варнинг бросать.
|
Цитата:
|
Ты про абстрактные классы или чо)?
|
Дайте мне движение сделать!
И всем типа похуй что причина соперничества людей - дефицит благ, таких например как возможность не работать а результат работы получать, и этот дефицит устраняется автоматизацией скучных и рутиных работ на которых люди не хотят работать, ливтеров заменили автоматическими лифтами, ткачих заменили ткатскими станками, гаишников и водителей заменят автопилотами, а быдло лишь возится в своих социальный проблемах не видя всей картины в целом. ВСЕ НАШИ ПРОБЛЕМЫ ТЕХНИЧЕСКИЕ, А НЕ ПОЛИТИЧЕСКИЕ! То есть сам факт СОПЕРНИЧЕСТВА ЛЮДЕЙ УЖЕ есть факт проблемы. И проблема явно не в том как более эффективно соперничать с другими людьми. А проблема в дефиците благ. Вы же, делаете революции хуюции и прочее, совершенно не видя причин. Вы же тупо соперничаете, даже не пытаясь устранить причину соперничества, относясь к соперничеству и дефициту благ, как к чему-то незыблимому.
Люди делятся на группировки называемые странами, на племена, соперничают за ресурсы, и прочее.. И только горстка ученых развивает технологии чтобы устранить этот дефицит и действительно РЕШИТЬ ПРОБЛЕМЫ. НО МЫ ТО С ВАМИ НЕ ТАКИЕ!!! МЫ БУДЕМ ПИЗДИЦА ДРУГ С ДРУГОМ ЗА БАНАНЫ ЗА МЕСТО ТОГО ЧТОБЫ УВЕЛИЧИТЬ УРАЖАЙНОСТЬ! И КУКАРЕКАТЬ "ВОТ ПЛОХОЙ ЧЕЛОВЕК! БОЛЬШЕ БАНАНОВ ЧЕМ Я ЗАБРАЛ!!! РЕВОЛЮЦИЯ!!!" ! Вы наверное еще и думаете что МЕНТЫ ПЛОХИЕ раз НЕ СДЕРЖИВАЮТ ЖАДНОСТЬ ВОЗНИКАЮЩУЮ В УСЛОВИЯХ ДЕФИЦИТА... Игнорируя тот факт что проблема все таки в дефиците, а не в сдерживании жадности. СТР0ОNЕ Р0БОТОВ8 б9ЛТtь!1! ![]() |
человек = животное, замени слово человек в своем тексте на животное и ты поймешь абсурдность своих суждений
|
человек - животное, абсурдности в суждениях не заметил. что я делаю не так?
|
Цитата:
|
:yes:
|
| Часовой пояс GMT +3, время: 22:06. |