对于我下面的示例代码,使用传统的命名函数和匿名函数执行相同的任务。
我已阅读var functionName = function() {} vs function functionName() {},并了解第一个命名函数是如何在运行时定义的,而第二个匿名函数是在解析时为脚本块定义的。
我的问题具体是什么条件会使一种方法比另一种方法更合适?
function get1() {
return 'Hello';
};
function alert1(data) {
alert(data);
};
var get2 = function() {
return 'Goodby';
};
var alert2 = function(data) {
alert(data);
};
alert1(get1());
alert2(get2());
答案 0 :(得分:0)
不必为匿名函数设置名称只是一个 方便的事情因为在大多数情况下功能的名称没有 真的很重要。大多数时候匿名函数和命名 功能将完美地完成任何工作。
查看这篇好文章:HERE
答案 1 :(得分:0)
在模块内部,我发现将任何内部的实用程序函数(例如function logfoo
和function logbar
)定义为返回语句,然后依赖它们更具可读性被吊起以便我可以在退货声明的上方/内部使用它们。
var myModule = (function() {
return {
foo: function() {
logfoo();
},
bar: function() {
logbar();
}
}
function logfoo() {
console.log('foo');
}
function logbar() {
console.log('bar');
}
})();