函数的传入的参数(实参和形参)

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)

        

   

 

  

   

posted @ 2016-04-07 13:52  杨小羊  阅读(1259)  评论(0编辑  收藏  举报