匿名函数

以下全是个人理解以及网上查找而来,如有不对请指正...

 

匿名函数

几种匿名的写法

(function(){})();最常见到的;

(function(){}());

void function(){};

 

错误的写法

function(){}(); 

为什么会这样了,  看看函数声明的语法和函数表达式的语法说明

 

 一.函数声明

function name([param[, param[, ... param]]]) {
   statements
}

这里的函数名称name是不可以省略的,省略了函数名就会报错

function (){alert('eee')}

因为编译器当他是函数声明而代码中没有函数名,所以就报错了.

 

二.函数表达式

function [name]([param] [, param] [..., param]) {
   statements
}

函数名称name可以被省略,省略name就是所谓的匿名函数.

说明一点:如果需要创建匿名函数,则必须给出一个函数表达式而非函数的显式声明

 

1/2/3匿名函数代码模式只不过是通过括号或者void告诉编译器,把function(){}当作函数表达式来解释罢了。这其中并没有那么复杂的优先级和void操作符原理。这只不过是一个简单的语法转换。

 

可以想象,只要符合函数表达式的语法,我们就可以创建出N种匿名函数代码模式,比如

!!function(){
   alert('yo');
}()
+function(){
   alert('yo');
}()

 

完了  唉 好象上面都是转载的别人的 嘿嘿

 

顺便写写匿名函数的好处

能够不使用全局变量,防止变量冲突,不知道还有没有??????

 

还有就是 有些人看到(function(){})();
就说什么闭包 闭包 

这可是错误的 要function中的 匿名函数 引用外部的变量 才能算是闭包.........

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值