JavaScript設計模式-1.函數

來源:互聯網
上載者:User

標籤:oct   情況   zhang   pre   工具類   javascrip   utf-8   最好   常用   

  1 <!DOCTYPE html>  2 <html>  3     <head>  4         <meta charset="UTF-8">  5         <title>javascript進階文法1-函數</title>  6     </head>  7     <body>  8       <script>  9           function print(p){ 10               console.log(p.toString(),p) 11           } 12           /* 13           var arr= new Array(); 14           arr.push(1); 15           arr.push(2); 16           arr.push(3); 17           arr.push(4); 18           print(arr); 19           print(arr.join(":")) 20           var  arr2 = [5,6,7,8] 21           print(arr.concat(arr2)) 22           //each() 擴充函數的方法 23           Array.each = function(array,fn){ 24               for(var i=0;i<array.length;i++){ 25                   fn(array[i]); 26               }     27           } 28           Array.each(arr,function(v){ 29               print(v); 30           }) 31            32           //回呼函數定義 33       function add(x,y,fn){ 34           this.x=x||1; 35           this.y=y||1; 36           if(fn){ 37               fn(this.x + this.y); 38           } 39       } 40        41       add(3,5,function(v){ 42           if(v>5){ 43               alert("res >5") 44           }else{ 45               alert(res <=5"") 46           } 47       }) 48       49       50        //函數傳參 51          //1.參數傳遞隨意性(可以少傳或多傳參數) 52          function add(x,y,z){ 53              this.x = x||0; 54              this.y = y||0; 55              this.z = z||0; 56              alert(this.x+this.y+this.z); 57          } 58           59  60          add(12,3,4,5); 61          //弊端:無法像java等進階語言那樣有函數精確複寫的特性。 62          //技巧:如果你這個類是工具類的情況下,那麼接收的參數最好是對象。 63          //conf={gridName:"",gridCode:"",gridSize:""} 64          function gridUtil(conf){ 65              alert(conf["gridName"]+conf["gridSize"]); 66          } 67          gridUtil({gridName:"zhangsan",gridSize:"20"}) 68   69          //傳值還是傳地址     70          var i = 100; 71          var s = "one"; 72          function add3(i,s){ 73              i++; 74              s+="--" 75          } 76          add3(); 77          alert(i); 78          alert(s); //證明基礎變數傳遞數值。 79           80          var o = {name:"zhangdan"}; 81          function change(o){ 82               o["name"] = "javascript"; 83          } 84          change(o); 85          alert(o.name);  //證明自訂對象傳參方式傳的是地址。 86           87     88          //函數遞迴 89          function add4(start,end){ 90              var num= 0; 91              num += start; 92              if(start<end){ 93                  num += add4(start+1,end); 94              } 95              return num 96          } 97        alert(add4(1,100)); 98         99       100       //代理函數--》 用程式來決定返回的新的函數(生產函數的函數)101       //類比資料庫102       var person = {"jim":‘m‘,"lili":"w"}103       var test = function(name){104           if(person[name]=="m"){105               return function(nk,wk){106                   alert(nk+" "+wk);107               }108           }else if(person[name]=="w"){109               return function(nk,wk,fk){110                   alert(nk+" "+wk+"  "+fk);111               }112           }113       }114       test("jim")("ok","ok");115       test("lili")("ok","ok","no");116       //前端代碼不常用,會使代碼複雜化。架構常用。117       118     */   119       120       //eval()函數 --》把一個字串解析成一個函數並執行121       var str = "var show = function(){alert(100)}()";122       eval(str);123       // 應用情境:資料庫有時候會返回一個字串(長得像js數組);124       var a = "[1,2,3]";125       var arr = eval(a);126       for(var i = 0;i<arr.length;i++){127           console.log(arr[i]);128       }129       130      131       </script>132     </body>133 </html>

 

JavaScript設計模式-1.函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.