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 閱讀(769) 評論(0)  編輯  收藏 所屬分類: JavaScript
          主站蜘蛛池模板: 定结县| 延川县| 宜兴市| 东乡| 香河县| 阳曲县| 罗平县| 巴林左旗| 湖北省| 津南区| 汾西县| 通州市| 榕江县| 额济纳旗| 汕头市| 陵川县| 陈巴尔虎旗| 黑河市| 岳西县| 嘉兴市| 扎赉特旗| 滁州市| 高平市| 扶绥县| 绿春县| 德钦县| 明光市| 陕西省| 大新县| 乐清市| 壤塘县| 廊坊市| 梓潼县| 昌平区| 南岸区| 恭城| 上犹县| 东安县| 乌鲁木齐县| 广水市| 波密县|