我可以命名一个JavaScript函数并立即执行它吗?

我有很多这样的例子:

函数addEventsAndStuff(){
//布拉布拉
}
addEventsAndStuff();
函数sendStuffToServer(){
//送东西
//获取HTML作为响应
//替换DOM
//添加事件:
addEventsAndStuff();
}

重新添加事件是必要的,因为DOM已更改,所以以前附加的事件将消失。由于它们最初也必须连接(duh),所以它们的干燥功能很好

这个设置没有问题(或者有问题吗?),但是我可以稍微平滑一点吗?我想创建addEventsAndStuff()函数并立即调用它,这样它看起来就不那么业余了

以下两个选项都会出现语法错误:

函数addEventsAndStuff(){
警报(“oele”);
}();
(函数addEventsAndStuff(){
警报(“oele”);
})();

有人要吗

你在问题中贴的例子没有错。。另一种方法可能看起来很奇怪,但是:

var addEventsAndStuff;
(addEventsAndStuff=函数(){
//添加事件,和…东西
})();

在JavaScript中定义函数有两种方法。函数声明:

函数foo(){…}

以及函数表达式,它是定义除上述以外的函数的任何方法:

var foo=function(){};
(函数(){})();
var foo={bar:function(){};

…等等

函数表达式可以命名,但其名称不会传播到包含范围。表示此代码有效:

(函数foo(){
foo();//由于某种原因的递归
}());

但这不是:

(函数foo(){
...
}());
foo();//foo不存在

因此,为了命名函数并立即调用它,需要定义一个局部变量,将函数作为表达式赋给它,然后调用它

发表评论