jzm17173 发表于 2013-1-4 02:42:38

【函数】♣arguments

<div id="cnblogs_post_body"><div class="cnblogs_code"><!DOCTYPE html><html lang="zh-CN"><head>    <meta charset="utf-8" />    <title></title></head><body>    <script>      // 尽管定义 JavaScript 函数时有固定数目的命名参数,但当调用这个函数时,传递给它的参数数目却可以是任意的。Arguments 对象允许完全地存取那些实际参数值,即使某些或全部参数还没有被命名。假定定义了一个函数f,要传递给它一个实际参数x。如果用两个实际参数来调用这个函数,那么在函数体内,用形式参数名 x 或 arguments 可以存取第一个实际参数。而第二个实际参数只能通过 arguments 来存取      // 验证调用函数时是否使用了正确数目的实际参数      function f1(x, y, z) {            if (arguments.length !== 3) {                console.log('function f called with ' + arguments.length + ' arguments, but it expects 3 arguments.');            }      }      f1(1, 2);      // 接受任意数目的实际参数,然后返回其中最大的参数的值      function max() {            var m = Number.NEGATIVE_INFINITY;// NEGATIVE_INFINITY 属性表示小于 Number.MIN_VALUE 的值。该值代表负无穷大            for (var i = 0, len = arguments.length; i < len; i++) {                if (arguments > m) {                  m = arguments;                }            }            return m;      }      console.log(max(1, 10, 100, 10000, 4, 5, 6));      function f2(x) {            console.log(x);            arguments[0] = null;            console.log(x);      }      f2(2);      // Arguments 对象还定义了 callee 属性,用来引用当前正在执行的函数。这个属性没有太大用处,但它可以用来允许对未命名的函数递归地调用自身      console.log(function (x) {            if (x <= 1) {                return 1;            }            return x * arguments.callee(x - 1);      } (3));      function f3(x, y) {            arguments[1] = 10;            console.log(y);            console.log(arguments[1]);      }      f3(1, 2);// 10 10      f3(1);// undefined 10    </script></body></html>
页: [1]
查看完整版本: 【函数】♣arguments