Javascript Can';我不懂JS语法

Javascript Can';我不懂JS语法,javascript,syntax,Javascript,Syntax,file.js: (function(m) { //some //code //here }(m)) 我搞不懂这个结构是什么意思?代码内联定义了一个函数,并立即执行它 用函数替换变量来考虑: (function(m) { //some //code //here }(m)) 那么,这与: var f = function(m) { //some //code //here } (f(x)) 但是不必定义f,这就是为什么

file.js:

(function(m) {
    //some
    //code
    //here
}(m))

我搞不懂这个结构是什么意思?

代码内联定义了一个函数,并立即执行它

用函数替换变量来考虑:

(function(m) {
    //some
    //code
    //here
}(m))
那么,这与:

var f = function(m) {
    //some
    //code
    //here
}
(f(x))

但是不必定义
f

,这就是为什么它们使用()环绕函数调用?@sector119:因为没有它们,解析器处于一种状态,在这种状态下,看到关键字
function
将启动函数声明。为了立即调用它,我们需要解析器启动一个函数表达式,因此我们使用paren(或
+
,或
等)将解析器置于只有表达式而不是声明有效的状态。额外的
()
使它成为一个表达式,而不仅仅是一个函数定义,这是它按需要工作所必需的。