js一百零一夜之第九夜-javascript 匿名函数

1.什么是匿名函数呢?为什么要用匿名函数?该如何使用呢?所有的答案都到碗里来-----------
1.1首先看看下面几种函数的定义
    1.function animal(){alert(123)},中规中矩的函数
    2.var animal=function(){alert(123)} 函数字面量
    3.var animal=new Funtion('x','alert(123)'),构造函数
2.从上面的的函数中,我们不难发现第二种函数没有方法名,有人说了,那不是有个变量名吗,将函数付给它不就是函数名吗?那你就大错特错了,
    究竟是为什么,语法这样规定的,都不是这样认为的,那假如我们把animal去掉不也可以吗,而其他的函数就不行了,所以可以看出第二种函数就是
     我们要 找的---匿名函数,实际上相当多的语言都有匿名函数。
    我们再来看一点实际中的代码
          console = (function(){
var console_o = {};
var CONFIG = {
"debug" : true,
"info" : true,
"warn" : true,
"error" : true
};
       var PRINT_MODE = 1; //0 不输出; 1 console.debug()输出; 2 alert输出
    var platform_print = function(str){};
      if(typeof(Middleware)!="undefined" && typeof(Middleware.name)=="string")
{
    switch(Middleware.name)
{
    case "RocME":
    platform_print = function(str){RocME.debug(str)}; 
    break;
default:
    break;
}
}

    }());
              从这段代码中我们发现,匿名函数内可以定义任何自己想定义的变量而不用担心匿名函数外部的变量受到污染。 这在给一个不是很熟悉的页面增加Javascript时非常有效,也很优美。jUI中也是使用了大量的匿名函数,有兴趣的同学可以看看实例。
         
3.那么该如何使用匿名函数呢,那就很简单了,在看两个例子,
                   首先声明一个函数然后执行它,函数字面量
                      a.  (function(){alert(123)})();
                   再看一个类似的例子,
                      b.  (fucntion(){alert(234)}());
                   优先表达式:由于Javascript执行表达式是从圆括号里面到外面,所以可以用圆括号强制执行声明的函数。
刚开始的时候我也不知道两个函数为什么不同样的写法,但是有异曲同工之秒,读了这句话才使我恍然大悟请看:)
---------------------------------------------------------------------------------------------------------------------------
使用括号运算符本身不会让括号中的代码立即执行,只有当括号包含的这个“分组”参与其他运算时,才会执行 因此,(function(){})()这个语句,其实是首先用分组运算符评估了一个函数表达式,随后参与“函数调用”。而(function(){}())这个语句,则是用分组运算符评估了一个函数调用,随后由于语句的结束而被执行。从语句上来说有细微的差距,当然就结果而言是一样的





























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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值