Снова всем привет!
Для тех кому не по
хуйфиг, вылил очередное обновление:
- Теперь функция 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"
- Добавлен параметр 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'ом вряд ли получится.
Все прочее как всегда в первом посте этого треда.