Все равно извилинами не понимаю как оно работает, только интуицией, по которой все и сделал. Вот код с купюрами лишнего:
var FormField=function(elem){
var type= elem.type,
title= elem.title,
pattern= elem.getAttribute('pattern'),
required= elem.getAttribute('required'),
multiple= elem.getAttribute('multiple'),
errmsg= elem.getAttribute('errmsg')+elem.getAttribute('placeholder'),
value= null,
rules={ // тут несколько функций проверки длины, паттерна и тп};
return {
elem:elem,
update:function(v){
elem.value=v;
},
validate:function(event) {
value=elem.value.trim();
if(type in rules)
rules[type](event);
else
rules.text(event);
}
};
};
В секции загрузки цикл типа
// сначала проверки всякие, типа кто без имени, кто без типа,
// чекбоксы с радивами - пропустить, что вернется - то запишется в коллекцию
if(type=='file')
return FormFile(elem,progress);
else
return FormField(elem);
Я правильно понимаю что функция выполняется и возвращается результат - объект.
Но с чем он связан - с текстом функции как это я предполагаю реализуется во всяких onclick/onload, или где-то хранится уже интерпретированный экземпляр функции откуда и черпаются данные в этот объект. Блин, даже толком задать вопрос не могу.
Короче, тут функция копируется вместе с тем что возвращается, или ее логика существует в единственном экземпляре?