Показать сообщение отдельно
  #2 (permalink)  
Старый 19.11.2011, 14:37
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от jsuse
Но в результате выполнения присвоенной функции получается всё равно же результат
Во-первых, вопрос в том, когда будет вызвана эта функция и будет ли вообще вызвана.
Если Вы напишете
function plead() { document.f1.b1.value += ", пожалуйста!"; }
document.f1.b1.onmouseover = plead;
То функция будет вызываться каждый раз, когда Вы наводите указатель мыши на кнопку. Таким образом, она может вообще не вызваться, если Вы будете старательно обходить кнопку стороной при движении мышью.
Если вы напишете
function plead() { document.f1.b1.value += ", пожалуйста!"; }
document.f1.b1.onmouseover = plead();
То функция будет вызвана единожды при присвоении, а присвоен будет результат её работы. Соответственно, никакой реакции на наведение мыши у кнопки не будет (если только Вы не возвращаете другую функцию).

Во-вторых, код, который будет вызывать Вашу функцию, может предоставить ей некоторые дополнительные данные, передав их как аргументы. Эти данные могут быть неизвестны в момент выполнения кода, а получены в процессе (AJAX / WebWorkers).
Ответить с цитированием