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 閱讀(773) 評論(0)  編輯  收藏 所屬分類: JavaScript
          主站蜘蛛池模板: 库伦旗| 垣曲县| 五台县| 如皋市| 乌拉特后旗| 海口市| 兴隆县| 大渡口区| 碌曲县| 保康县| 日土县| 五指山市| 汕头市| 阜康市| 安康市| 光泽县| 莱阳市| 醴陵市| 汝州市| 鹤峰县| 清徐县| 龙陵县| 射阳县| 靖宇县| 江口县| 呼玛县| 南丹县| 潜山县| 石柱| 梅州市| 清水河县| 米泉市| 安泽县| 临安市| 贵港市| 灵山县| 巍山| 乌恰县| 阜平县| 集安市| 乐陵市|