JS, closures, native code functions
вопрос: что я делаю некорректного и в какой спек глядеть?гм... Я плохо знаю JS, но ты вызываешь метод не передавая экземпляр класса, мб. в этом проблема?
upd: если вызов qq заменить на (вроде) эквивалентный код:
var tmp = document.forms[0].submit;то ошибка не проявляется
document.forms[0].submit = qq;
document.forms[0].submit;
document.forms[0].submit = tmp;
document.forms[0].submit=function(qq){
return function{
alert('begin submit. submit is ...');
alert(qq);
try{
qq;
} catch(e){
alert('here we fail submit: '+e);
};
alert('... submit OK');
}
}(q);
А зачем вообще обёртку из функции делать?
"function(A){return function{...A...}}(B)" не проще ли записать "function{...B...}"?
вообще, всем пишущим javascript, стоит прочитать вот это: http://ejohn.org/apps/learn/
(я пока еще не до конца дошел, но мозги в порядок приводит хорошо)
вроде фабрики что-то, наверное (или как там оно называться должно?)Ну в данном случае, если этот сферический конь не специально сделан для эксперимента, то смысла в этой фабрике нет.
ты вызываешь метод не передавая экземпляр класса, мб. в этом проблема?действительно. Спасибо
о, спасибо. А я что-то пытался мучиться с with
http://ejohn.org/apps/learn/спасибо большое за ссылку. Сегодня не пошёл ни на работу, ни в универ
Оставить комментарий
hwh2010
обнаружил странность в opera и firefoxэтот код прекрасно работает:
а вот в этом работает только верхняя часть (которая про f). та, что про sumbit — валится
вопрос: что я делаю некорректного и в какой спек глядеть?