2017-01-07 2 views
0

Я пытался реализовать ReCaptcha на моем сайте, так что я создал функцию обратного вызова с помощью JavaScript, который должен быть выполнен, когда пользователь отправляет успешный ответ искаженного:SyntaxError: отсутствует (до формальных параметров

<script> 
    function onSubmit = function(token) { 
     document.getElementById("form-signin").submit(); 
    } 
</script> 

Но всегда получил эту ошибку SyntaxError: missing (before formal parameters при использовании Firefox

при использовании Google Chrome, я получил эту ошибку, вместо этого:. Uncaught SyntaxError: Unexpected token =

Оба браузера указывают, что ошибка находится в function onSubmit = function(token) {, но я не знаю, почему это произошло.

Может ли кто-нибудь быть таким добрым, чтобы рассказать мне, что не так?

+0

вы должны попробовать Var onSubmit = – Deep

ответ

1

Есть два основных способа объявить функцию с именем:

function onSubmit(token){ 
    document.getElementById("form-signin").submit(); 
} 

Или:

var onSubmit = function(token){ 
    document.getElementById("form-signin").submit(); 
}; 

В вашем случае, просто пойти с первым.

+0

@DavidThomas я знаю. Дело в том, что второй способ может ввести в заблуждение новичков, потому что он размывает линии между функциями и переменными. К ним можно относиться одинаково, что полезно для HOF, закрытий и т. Д. Но первое легче понять, когда вы запускаете javascript, IMHO. –

2

function some_identifier может запускать либо объявление функции, либо выражение функции. В любом случае следующие символы должны быть (, затем любые определения аргументов, затем ).

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

Так как:

function onSubmit(token) { 
    document.getElementById("form-signin").submit(); 
} 

или

var onSubmit = function(token) { 
    document.getElementById("form-signin").submit(); 
} 
Смежные вопросы