Показать сообщение отдельно
  #1 (permalink)  
Старый 24.04.2015, 09:17
Профессор
Отправить личное сообщение для UIjs Посмотреть профиль Найти все сообщения от UIjs
 
Регистрация: 24.04.2015
Сообщений: 183

Функция Class жива!
А между тем победоносная самая лучшая в мире функция Class развилась и перекочевала жить в ui.js ^_^ и теперь называется extend. Вот кстати че она может:

<script src="//uijs.ru/ui.js"></script>


<script>

    // создадим Родителя
    var Animal = ui.extend({

        constructor: function () {
            this.private.name = 'Animal'; // приватное свойство name
        },

        say: function () {
            alert(this.private.name); // 'Animal'
        }

    });


    // создадим Ребенка и наследуем его от родителя
    var Rabbit = Animal.extend(new function () {

        this.constructor = function () {
            this.private.name = 'Rabbit'; // приватное свойство name
            this.super(); // поскольку перекрыли родительский конструктор, вызовем его
        };


        // перекрываем метод say
        this.say = function () {
            this.super(); // 'Animal'
            alert(this.private.name); // 'Rabbit'
            alert(this.static.prop); // 11
        }

    });

  
    Rabbit.prop = 11;  // зададим классу статическое свойство


    var rabbit = new Rabbit();
    rabbit.say(); // запускаем шарманку

</script>



Также наследовать можно от нативных классов:

<script src="//uijs.ru/ui.js"></script>


<script>

    var List = ui.extend(Array, {

        constructor: function () {
            this.name = 'List';
        },


        // перекроем родительский метод
        push: function (item) {
            this.super(item); // вызовем оригинальный метод
            alert(this.name); // ну и добавим доп функционал
        }

    });


    var list = new List();
    list.push('lol'); // 'list'
    list.push('lol'); // 'list'

    alert(list instanceof Array); // true
    alert(list instanceof List); // true

</script>



Ну а с классами кофескрипта она вообще идеально сочитается, она вообще под них и затачивалась потому что я на нем пишу, просто передаешь класс и все и она его понимает).

P.S. и это лишь маааааалая часть моего мегафреймворка, он коненчо крутой и уже лучше ангуляра и такой же быстрый как реакт потому что использует ассинхронный рендеринг, но еще пол годика или годик нужно подождать до статьи на хабре, он сыроват, я хочу туда добавить ТАКИЕ фишки чтобы волосы на жопе дыбом стояли, вроде переводчика и языковых пакетов. и.т.п. и чтобы перевод можно было делать прям в интерфейсе зажав шифт например и тыкнув на элемент.

Последний раз редактировалось UIjs, 24.04.2015 в 09:29.
Ответить с цитированием