The NoteBook of EricKong

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks

当我们在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程 序中,同时出现多个同名函数时,浏览器会去执行最后一个函数。

posted on 2010-05-29 10:44 Eric_jiang 阅读(757) 评论(0)  编辑  收藏 所属分类: JavaScript

只有注册用户登录后才能发表评论。


网站导航: