自执行-立即调用的函数表达式
在某些情况下,我们不需要函数创建多个实例,也不需要对返回值做什么处理,便可以通过在函数声明的后面添加()
来实现自执行。因为foo
仅仅是function(){}
这个表达式的一个引用,在函数表达时候后添加()
便可以执行。
1 | var foo = function(){ |
但如果我们像下面这么写,会报错:
1 | function(){ |
给括号里加入参数的话,可以不报错,但是函数不会执行,因为它会被解析成一个毫不相关的括号。
报错原因:解析代码的时候,function已经被识别为声明函数用,而不是一个函数表达式。
所以我们要做的就是把括号前面的内容解析成表达式,以下的写法都可以:
1 | (function makeCounter(){ |