posts - 403, comments - 310, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          日歷

          <2007年5月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          相冊

          搜索

          •  

          積分與排名

          • 積分 - 337530
          • 排名 - 167

          最新評論

          JavaScript 學習 - Functions

          Posted on 2007-05-04 22:20 ZelluX 閱讀(320) 評論(0)  編輯  收藏 所屬分類: Web

          越來越發現JavaScript其實是一門很強大、很精深的語言,要好好學習下。
          以下例子都摘自于Professional JavaScript for Web Developers

          1. JavaScript中函數不能重載。

          2. 每個函數有一個對應的arguments[]數組,包含所有的參數,且數量不需固定。

          function howManyArgs() {
              alert(arguments.length);
          }

          3. 函數也是一個對象,使用Function類創建函數的方法是:
          var function_name = new Function(argument1, argument2,..,argumentN, function_body);
          這里所有的參數都必須是字符串。
          var sayHi = new Function("sName", Message""alert(\"Hello \" + sName + \", \" + sMessage + \”);”);
          從這個角度看,不支持函數重載的原因也很簡單。
          doAdd = new Function("iNum""alert(iNum + 100)");
          doAdd 
          = new Function("iNum""alert(iNum + 10)");
          doAdd(
          10);
          可以推出的幾個結論:
          a) 第二次函數聲明使得doAdd指向了另一個對象,自然不可能實現重載。
          b) 函數可以通過句柄很容易的復制。
          c) 函數能作為參數傳遞給另一個函數。
          d) func.toString()可以得到函數的具體內容。

          4. 閉包 Closure
          簡單的定義就是使用了函數體之外的引用。
          var sMessage = “Hello World!”;
          function sayHelloWorld() {
              alert(sMessage);
          }

          sayHelloWorld();
          var iBaseNum = 10;
          function addNumbers(iNum1, iNum2) {
              
          function doAddition() {
                  
          return iNum1 + iNum2 + iBaseNum;
              }

              
          return doAddition();
          }
          例二中的內嵌方法doAddition()使用了外部方法的參數。
          51La
          主站蜘蛛池模板: 姜堰市| 南澳县| 红原县| 永嘉县| 九江县| 建昌县| 秦皇岛市| 明星| 桐柏县| 乌海市| 荣昌县| 德惠市| 玉环县| 长汀县| 东明县| 犍为县| 闸北区| 仙居县| 响水县| 博爱县| 汕尾市| 苍梧县| 商洛市| 威信县| 钦州市| 卢湾区| 丘北县| 固始县| 固安县| 乐山市| 乌拉特后旗| 民权县| 乳源| 峨眉山市| 泰来县| 封丘县| 横山县| 西乌珠穆沁旗| 曲靖市| 洛南县| 临夏县|