Javascript 编写匿名函数时出错

Javascript 编写匿名函数时出错,javascript,anonymous-function,Javascript,Anonymous Function,我试图将“命名函数”与“匿名函数”进行比较,但在一个简单的程序中,我发现了一个错误。我做的每件事都是对的,不知道为什么会出错。有人能帮忙吗 //命名为Fn 函数alpha(){ 警报(“hi”); } //匿名Fn 函数(){ 警惕(“你好”); } //生活 (功能(){ 警惕(“早安”); })(); α(); 您不能真正声明匿名函数。你需要在有需要的时候使用它。你有: function(){ alert('hello'); } 因为你还没有命名它,所以它总是会抛出一个错误。如果你

我试图将“命名函数”与“匿名函数”进行比较,但在一个简单的程序中,我发现了一个错误。我做的每件事都是对的,不知道为什么会出错。有人能帮忙吗


//命名为Fn
函数alpha(){
警报(“hi”);
}
//匿名Fn
函数(){
警惕(“你好”);
}
//生活
(功能(){
警惕(“早安”);
})();
α();

您不能真正声明匿名函数。你需要在有需要的时候使用它。你有:

function(){
  alert('hello');
}
因为你还没有命名它,所以它总是会抛出一个错误。如果你把它附加到某个匿名函数合适的地方,你就没事了。例如:

setTimeout(function(){
  alert('hello');
}, 500);
因此,修改后的代码段如下所示:

//命名为Fn
函数alpha(){
警报(“hi”);
}
//匿名Fn
setTimeout(函数(){
警惕(“你好”);
}, 500);
//生活
(功能(){
警惕(“早安”);
})();

α()
您只能将类似于您的
hello
这样的匿名函数作为表达式编写-也就是说,在解释器期望值(例如括号内)作为另一个函数的参数的位置。否则,解释器会尝试将其解析为函数声明(其函数名被提升为
var
)-但如果没有名称,则不可能,因为没有任何内容可以提取为名称、提升为变量并分配给

解决方案是将匿名函数放在括号内:

//命名为Fn
函数alpha(){
警报(“hi”);
}
//匿名Fn
(功能(){
警惕(“你好”);
});
//生活
(功能(){
警惕(“早安”);
})();

α()您可以将javascript代码复制粘贴到浏览器的控制台(开发人员工具)

在Firefox上,您将收到以下错误:

SyntaxError: function statement requires a name [Learn More]
单击[了解更多信息],您将被引导到

函数语句(或函数声明)需要一个名称,如下所示 不起作用:

function () {
    return 'Hello world';
} // SyntaxError: function statement requires a name
您可以改用函数表达式(赋值):


我做的每件事都是对的
。。。显然没有,但我没有遗漏任何括号。请告诉我该怎么做?请,有人能帮我粘贴正确的代码片段吗。我没有遗漏任何括号。
function(){
根目录中不能有这样的匿名函数
var greet = function() {
    return 'Hello world';
};