Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript SyntaxError:缺少(在形式参数之前)_Javascript_Function - Fatal编程技术网

Javascript SyntaxError:缺少(在形式参数之前)

Javascript SyntaxError:缺少(在形式参数之前),javascript,function,Javascript,Function,我试图在我的网站上实现recaptcha,因此我使用javascript创建了一个回调函数,当用户提交成功的验证码响应时,应该执行该函数: <script> function onSubmit = function(token) { document.getElementById("form-signin").submit(); } </script> 但总是会遇到这样的错误SyntaxError:在使用Firefox时,在形式参数之前缺少 当使

我试图在我的网站上实现recaptcha,因此我使用javascript创建了一个回调函数,当用户提交成功的验证码响应时,应该执行该函数:

<script>
   function onSubmit = function(token) {
      document.getElementById("form-signin").submit();
   }
</script>
但总是会遇到这样的错误SyntaxError:在使用Firefox时,在形式参数之前缺少

当使用Google Chrome时,我得到了这个错误:Uncaught SyntaxError:Unexpected token=

两种浏览器都指出错误位于函数onSubmit=functiontoken{,但我不知道为什么会发生这种情况


有谁能告诉我出了什么问题吗?

声明命名函数有两种基本方法:

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


在您的情况下,只需使用第一种方法。

声明命名函数有两种基本方法:

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

在您的情况下,只需使用第一个。

函数某些标识符可以启动函数声明或函数表达式。无论哪种方式,下一个字符都必须是任何参数定义

如果您想将函数表达式的求值结果分配给变量,就像您在这里尝试做的那样,那么您必须以正常方式(即使用var关键字)声明变量,除非您已经声明了变量,或者没有使用严格模式,并且想要创建全局变量

因此,要么:

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

函数某些_标识符可以启动函数声明或函数表达式。无论哪种方式,下一个字符都必须是任何参数定义,然后才是

如果您想将函数表达式的求值结果分配给变量,就像您在这里尝试做的那样,那么您必须以正常方式(即使用var关键字)声明变量,除非您已经声明了变量,或者没有使用严格模式,并且想要创建全局变量

因此,要么:

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


你应该试试var onSubmit=我是如何得到这个错误的:我没有得到足够的睡眠,出于某种原因,我认为我可以在函数名中使用破折号数学运算符进行减法运算。对于任何想知道和遇到相同错误的人,你显然不能;这是减法。你应该试试var onSubmit=我是如何得到这个错误的:我没有得到足够的sle出于某种原因,我认为我可以在函数名中使用破折号数学运算符进行减法运算。对于任何对同一错误感到疑惑和绊倒的人来说,你显然不能这样做;这是减法。@DavidThomas我知道。问题是第二种方法可能会让初学者感到困惑,因为它模糊了函数和变量之间的界限y可以用同样的方法处理,这对HOF、闭包等很有用。但是,当您启动javascript时,第一种方法更容易理解,IMHO。在我的例子中,jQuery.my_function=function{…};是唯一可能的,并且;丢失了。函数jQuery.my_function{…}显然不起作用。@Meloman是的,这是一个很好的观点。当你有一个像jQuery这样的现有对象时,你不能用第一种语法在它上面声明一个新函数。它只接受一个Javascript,而不是一个完整的对象路径。@DavidThomas我知道。问题是第二种方法可能会让初学者感到困惑,因为它模糊了界限函数和变量之间的。它们可以被视为相同的,这对HOF、闭包等很有用。但是,当您启动javascript时,第一个更容易理解,IMHO。在我的例子中,jQuery.my_function=function{…};是唯一可能的,并且;丢失了。函数jQuery.my_function{…}显然不起作用。@Meloman是的,这是一个很好的观点。当您有一个像jQuery这样的现有对象时,您不能使用第一种语法在其上声明新函数。只接受Javascript,而不是完整的对象路径。