黑马程序员技术交流社区

标题: JS中代参函数的赋值问题 [打印本页]

作者: 黄树人    时间: 2012-9-4 04:12
标题: JS中代参函数的赋值问题
  1. <script type="text/javascript">
  2. function show(a,b)
  3. {
  4.         var result = a + b;
  5.         return result;
  6. }

  7. var x = 10;
  8. var y = 20;
  9. var result = show(x,y);
  10. alert(result);

  11. var result2 = show(x,y,30);
  12. alert(result2);

  13. var result1 = show(30);
  14. alert(result1);

  15. var sum = show();
  16. alert(sum);
  17. </script>
复制代码
在JS中定义了有2个参数的代参函数,但调用时给的参数个数却不同,
这个样用,不报错,但出的结果给不相同,这中写法可以吗?
具体的调用时选择的哪些参数有什么规律吗?
作者: 杨震    时间: 2012-9-4 08:49
这就是js的灵活性所在,你虽然定义了两个参数,但是可以传N(N=0,1,2,.........)个参数进去,依次给x,y,如果不传,就都没有被赋值;如果传一个,就x被赋值;如果传2个x,y都被赋值;如果传2个以上,则也只有x,y依次被赋值前两个
作者: 黄树人    时间: 2012-9-4 13:21
代码运行的时候的JS提醒框的NaN是什么意思啊
作者: 杨习平    时间: 2012-9-4 14:19
函数
                        格式:
                        function 函数名(参数列表...)
                        {
                                语句;
                                return 返回值;
                        }

                        注意:所有参数都被一个叫做arguments的数组所包含。

                        function test(){...}

                        //这个时候,demo和test其实指向的是同一个函数
                        var demo = test;

                B:动态函数
                        是根据JS的内置对象Function来完成的。
                        var temp = new Function("参数列表","函数体");

                C:匿名函数
                        格式:function(){...}

                        其实就是函数的简写形式。
                        比如:
                        var demo = function(a,b)
                        {
                                return a + b;
                        }

                        相当于
                        function sum(a,b)
                        {
                                return a + b;
                        }

                        var demo = sum;
        var 的类型是根据传入的对象的类型而定的。
     你所说的方法调用也可以理解成这个方法传入不同个数的数值就会随着变化而不报错。但是它里面的
     初始化定义也是有规则的,var result = show(x,y);像你这样写的,就可以说是var 类型的 result 和
     show(x,y);有一样的功能,都是可以调用使的,很灵活的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2