Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Использование классов в JavaScript (https://javascript.ru/forum/project/27339-ispolzovanie-klassov-v-javascript.html)

devote 01.02.2013 17:17

Снова всем привет!

Для тех кому не похуйфиг, вылил очередное обновление:
  1. Теперь функция Class вернет экземпляр класса если перед ней будет стоять оператор new, в противном случае вернет сам класс. Пример:
    // стандартное использование, вернет класс
    var MyClass = Class({
        test: "Hello"
    });
    var instance = new MyClass; // создаем экземпляр
    alert(instance.test); // alerts "Hello"
    
    // новая возможность, не нужно создавать экземпляр
    var instance = new Class({
        test: "Hello"
    });
    alert(instance.test); // alerts "Hello"
    
  2. Добавлен параметр compact, который дает возможность убрать/удалить из объекта внутренние свойства __class__ и parent. Пример:
    // при обычном использовании без параметра "compact"
    var obj = new Class({
        myProperty: "ololo"
    });
    for(var key in object) {
        alert(key); // alerts "myProperty", "parent", "__class__"
    }
    
    // новая возможность, с использованием параметра "compact"
    var obj = new Class({compact: true}, {
        myProperty: "ololo"
    });
    for(var key in object) {
        alert(key); // alerts "myProperty"
    }
    
При использовании параметра compact, свойство parent не будет доступно, и конечно же нельзя будет вызвать перекрытый метод родительского класса. В нормальных браузерах можно будет использовать метод .getPrototypeOf() но для ИЕ с его VBScript'ом вряд ли получится.

Все прочее как всегда в первом посте этого треда.


Часовой пояс GMT +3, время: 15:52.