2015-03-27 3 views
1

Я пытался вызвать функцию из разметки следующим образом:функции Invoke определяется как OnLoad событие

<form onsibmit="actualizeTextFields()"> 
    <!-- Form's stuff --> 
</form> 

Где Funcition определяется следующим образом:

window.onload = function actualizeTextFields(){ 
    //some stuff 
}; 

И это не сработало. Я думал, что имя actualizeTextFields будет добавлено к глобальному Environment record. Почему это не так?

ответ

1

Названные функции выражения только создать переменную, соответствующую их имя внутри своей собственной сферы (за исключением старых версий Internet Explorer, благодаря жука).

Объявление функций создаст переменную в диапазоне .

Вы можете переписать код, как:

function actualizeTextFields(){ 
    //some stuff 
}; 
window.onload = actualizeTextFields; 

или

function actualizeTextFields(){ 
    //some stuff 
}; 
window.addEventListener('load', actualizeTextFields); 
+0

Вам не нужна точка с запятой после объявления функции. – jcubic

0

Если вы выполняете функцию varaible или property, она станет выражением, и если вы ее назовете, она будет локальной внутри функции. решение определить его первым:

function actualizeTextFields(){ 
    //some stuff 
} 
window.onload = actualizeTextFields; 
Смежные вопросы