***** JavaScript 高级编程 之 同名函数的执行顺序 [原创] *****

作者:Topcss QQ419074376 E-mailandpai1.0@gmail.com Time2008-10-20

背景:这是帮一个做教师的朋友写的,用来上课教学。

 

当我们在JavaScript中,要执行一个函数往往都是这样写

 

 

function aa(){

    alert("first function");

};

aa();

 

有人会问能否再简化呢?答案是肯定的!只要你愿意我们还可以通过括号直接调用函数

 

 

(function aa(){

    alert("(function)();");

})();

 

当然,也又别的方法,试试在函数前写上+或者-吧!

 

 

+function aa(){

    alert("+function();");

}();

 

这是,我们浏览器中的代码应该是这样的:

 

 

<html>

    <head>

        <title>JavaScript 高级编程 之 同名函数的执行顺序</title>

        <script language="javascript" type="text/javascript">

            function aa(){

                alert("first function");

            };

            aa();

 

            (function aa(){

                alert("(function)();");

            })();

 

            +function aa(){

                alert("+function();");

            }();

        </script>

    </head>

    <body>

    </body>

</html>

 

现在让我们来想一想浏览器会出现怎样的结果?

 

坐在后排的那哥们儿举手了。听听他怎么说,他说:

浏览器会按照1.first function 2.(function)(); 3.+function(); 方式执行

 

我肯定一定会有很多人这样回答。好的,你可以坐下了。还是让我们去看看执行的结果吧!

 

浏览器结果: 1.+function(); 2.(function)(); 3.+function(); 真是不可思议,为什么呢?

 

难道浏览器会认为在函数前面写+或者-会让函数的执行级别更高?事实并非如此!下面我们再写一个函数,便可以证明这个结论是错误的。

 

 

function aa(){

    alert("last function");

};

 

或许,我们还会有带参的函数需要执行。

 

 

function aa(msg){

    alert(msg);

}

aa("hello topcss!");

 

好了,我们再去看看浏览器是否执行最后一个函数,也就是带参的函数呢。

 

的确,事实正是如此,她执行了最后一个函数。太棒了。

 

现在,我们得出了一个结论:

当我们在一个JavaScript程序中,同时出现多个同名函数时,浏览器会去执行最后一个函数。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值