Javascript中有名称函数和无名称函数的区别

Javascript中有名称函数和无名称函数的区别,javascript,anonymous-function,Javascript,Anonymous Function,一, v/s 二, 请从初学者的角度进行解释。它们的工作原理完全相同。只有在你如何运行它们时,它们才是不同的 因此,示例#1可以在任何时候使用abc()再次调用。例如,您必须将其作为参数传递给另一个函数,或者设置一个变量来存储它,如下所示: function(){ alert("Un-Named function"); } 下面是如何将它传递到另一个函数并运行它 var someFunction = function() { alert("Un-Named function")

一,

v/s

二,


请从初学者的角度进行解释。

它们的工作原理完全相同。只有在你如何运行它们时,它们才是不同的

因此,示例#1可以在任何时候使用
abc()再次调用。例如,您必须将其作为参数传递给另一个函数,或者设置一个变量来存储它,如下所示:

function(){
    alert("Un-Named function");
}
下面是如何将它传递到另一个函数并运行它

var someFunction = function() {
    alert("Un-Named function");
}
正如David在下面提到的,您也可以立即调用它:

// define it
function iRunOtherFunctions(otherFunction) {
    otherFunction.call(this);
}

// run it
iRunOtherFunctions(function() {
    alert("I'm inside another function");
});

这两个函数可以实现相同的功能,但主要区别在于匿名函数不需要名称。匿名函数是在运行时动态声明的函数。它们被称为匿名函数,因为它们的命名方式与普通函数不同


请参阅此

具有名称的可由该名称引用。没有名称的函数不能,它是“匿名的”。功能上它们是相同的。只需在第二个示例中尝试调用该函数。第二个示例的语法无效,代码将抛出语法错误。要在没有名称的情况下使用,它需要在某个表达式中进行求值。Up-vote+感谢您询问:setTimeout(()=>{},time)??为了完整性,匿名函数的另一个选项是立即调用(或自调用)它:
(function(){alert('something');})()添加了更多示例。谢谢David。@Jordan,您的最后一个示例需要像
(function(){})那样包装函数
(函数(){}())@user2736012不确定你在说什么。第二个例子很好用。我已经在最后一个例子中修复了丢失的包装帕伦。@Jordan:我刚才说的是问题中的第二个例子。它不是如图所示的有效语法。然后我谈到了你的最后一个例子。你在我和坎农的评论后修复了它。
// define it
function iRunOtherFunctions(otherFunction) {
    otherFunction.call(this);
}

// run it
iRunOtherFunctions(function() {
    alert("I'm inside another function");
});
(function() {
    alert("Called immediately");
})(); // note the () after the function.