Javascript.RU

Результаты опроса: Как вам UI
Похоже на унылое говно 20 68.97%
Однозначно буду использовать 7 24.14%
Пока не разобрался что это 2 6.90%
Голосовавшие: 29. Этот опрос закрыт

Создать новую тему Ответ
 
Опции темы Искать в теме
  #381 (permalink)  
Старый 11.01.2014, 05:45
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus7
 
Регистрация: 08.01.2014
Сообщений: 354

пофиксил, ускорил скорость работы) добавил поддержку статических, приватных и даже публичных свойств =)

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

Последний раз редактировалось Maxmaxmaximus7, 11.01.2014 в 07:15.
Ответить с цитированием
  #382 (permalink)  
Старый 11.01.2014, 06:54
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus7
 
Регистрация: 08.01.2014
Сообщений: 354

если кто не понял, это все шутка потому как пилить норм парсер мне влом) мне ни разу не встречалась необходимость в наслеовании классов если честно за всю жизнь. Ну ни разу вот, например ни разу не приходилось наследовать что-то от евент эмиттера, я все делаю проще просто. Если появляется необходимость в наследовании, значит - сделал сложно, и я переделываю.

Последний раз редактировалось Maxmaxmaximus7, 11.01.2014 в 07:14.
Ответить с цитированием
  #383 (permalink)  
Старый 11.01.2014, 07:20
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus7
 
Регистрация: 08.01.2014
Сообщений: 354

жалко правда эти васяны не разрешают использовать слово super. вообще вымораживает, могли бы и варнинг бросать.
Ответить с цитированием
  #384 (permalink)  
Старый 11.01.2014, 16:14
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Maxmaxmaximus7 Посмотреть сообщение
Если появляется необходимость в наследовании, значит - сделал сложно, и я переделываю.
ржунимагу а как же абстракции?
Ответить с цитированием
  #385 (permalink)  
Старый 11.01.2014, 16:41
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus7
 
Регистрация: 08.01.2014
Сообщений: 354

Ты про абстрактные классы или чо)?
Ответить с цитированием
  #386 (permalink)  
Старый 16.01.2014, 07:01
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus7
 
Регистрация: 08.01.2014
Сообщений: 354

Дайте мне движение сделать!
И всем типа похуй что причина соперничества людей - дефицит благ, таких например как возможность не работать а результат работы получать, и этот дефицит устраняется автоматизацией скучных и рутиных работ на которых люди не хотят работать, ливтеров заменили автоматическими лифтами, ткачих заменили ткатскими станками, гаишников и водителей заменят автопилотами, а быдло лишь возится в своих социальный проблемах не видя всей картины в целом. ВСЕ НАШИ ПРОБЛЕМЫ ТЕХНИЧЕСКИЕ, А НЕ ПОЛИТИЧЕСКИЕ! То есть сам факт СОПЕРНИЧЕСТВА ЛЮДЕЙ УЖЕ есть факт проблемы. И проблема явно не в том как более эффективно соперничать с другими людьми. А проблема в дефиците благ. Вы же, делаете революции хуюции и прочее, совершенно не видя причин. Вы же тупо соперничаете, даже не пытаясь устранить причину соперничества, относясь к соперничеству и дефициту благ, как к чему-то незыблимому.

Люди делятся на группировки называемые странами, на племена, соперничают за ресурсы, и прочее.. И только горстка ученых развивает технологии чтобы устранить этот дефицит и действительно РЕШИТЬ ПРОБЛЕМЫ.

НО МЫ ТО С ВАМИ НЕ ТАКИЕ!!! МЫ БУДЕМ ПИЗДИЦА ДРУГ С ДРУГОМ ЗА БАНАНЫ ЗА МЕСТО ТОГО ЧТОБЫ УВЕЛИЧИТЬ УРАЖАЙНОСТЬ! И КУКАРЕКАТЬ "ВОТ ПЛОХОЙ ЧЕЛОВЕК! БОЛЬШЕ БАНАНОВ ЧЕМ Я ЗАБРАЛ!!! РЕВОЛЮЦИЯ!!!" !

Вы наверное еще и думаете что МЕНТЫ ПЛОХИЕ раз НЕ СДЕРЖИВАЮТ ЖАДНОСТЬ ВОЗНИКАЮЩУЮ В УСЛОВИЯХ ДЕФИЦИТА... Игнорируя тот факт что проблема все таки в дефиците, а не в сдерживании жадности.

СТР0ОNЕ Р0БОТОВ8 б9ЛТtь!1!


Последний раз редактировалось Maxmaxmaximus7, 16.01.2014 в 07:04.
Ответить с цитированием
  #387 (permalink)  
Старый 16.01.2014, 10:58
Аватар для nice_try
Профессор
Отправить личное сообщение для nice_try Посмотреть профиль Найти все сообщения от nice_try
 
Регистрация: 11.12.2013
Сообщений: 313

человек = животное, замени слово человек в своем тексте на животное и ты поймешь абсурдность своих суждений
Ответить с цитированием
  #388 (permalink)  
Старый 16.01.2014, 10:59
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus7
 
Регистрация: 08.01.2014
Сообщений: 354

человек - животное, абсурдности в суждениях не заметил. что я делаю не так?
Ответить с цитированием
  #389 (permalink)  
Старый 16.01.2014, 11:01
Аватар для nice_try
Профессор
Отправить личное сообщение для nice_try Посмотреть профиль Найти все сообщения от nice_try
 
Регистрация: 11.12.2013
Сообщений: 313

Сообщение от Maxmaxmaximus7 Посмотреть сообщение
что я делаю не так?
живешь
Ответить с цитированием
  #390 (permalink)  
Старый 16.01.2014, 11:14
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus7
 
Регистрация: 08.01.2014
Сообщений: 354

Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обсуждений тред cyber Оффтопик 2130 03.10.2018 08:10
React'а тред melky Оффтопик 246 13.11.2016 08:07
Webpack'а тред nerv_ Сборка проекта, утилиты 58 07.05.2016 13:46
Github Atom'а тред melky Оффтопик 16 01.04.2015 07:44