天天看點

函數的傳入的參數(實參和形參)

function a(x,y){return x+y};

調用a(20,30)

形參指的是函數定義的參數,也就是x和y。實參是指傳入的參數也就是20和30

1,可選形參

     a)  函數聲明為兩個形參function a(x,y){},但是調用時可能之傳入a(1),第二個被忽略的參數将被傳入undefined。

     b)  注意:在參數可選時,在函數裡注意判斷是否為undefined。

2,可變長的實參清單

    a) 如果實參的長度大于形參,可以用arguments得到所有的實參。否則多餘的實參會被忽略掉。

            arguments是實參對象,可以像數組一樣通過下标取到所有的實參,例如:(取最大值)

            function max(){

                var max=Number.NEGATIVE_INFINITY;//表示負無窮

       for(var i=0;i<arguments.length;i++)

          if(arguments[i]>max){max=arguments[i]}

         return max

               }

          var ma=max(12,2222,14,454,633)   //傳回值為2222

 3,對象屬性作為實參(在形參比較多時)

       也就是把要傳遞的參數以鍵值對的形式封裝成對象,需要用時直接傳遞對象。

 4, 可以把函數作為參數

        a,函數可以指派給另一個函數   例如:

             function square(x){return x*x}

             var s=square;   //現在s和square指向同一個函數

             suqare(4);   //16

              s(4)            //16

        b, 函數作為參數

           function add(x,y){return x+y}

           function subtract(x,y){return x-y}

           function op(opt1,opt2,opt3){//opt1傳入一個函數

                  return opt1(opt2,opt3)

            } 

           調用:op(add,2,3)            //相當于add(2+3)

                   op(add,op(add,2,3),op(subtract,2,3))     //相當于(2+3)+(2-3)

轉載于:https://www.cnblogs.com/Ycc9/p/5363250.html