JavaScript之学习arguments对象

来源:互联网 发布:edu.cn域名申请 编辑:程序博客网 时间:2024/06/03 03:31

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Function Study</title>    <script>        function test(a,b) {            //            if(arguments.length===arguments.callee.length) {                document.write(test.length)                document.write('<br>');                document.write(a+b);                document.write('<br>');            }else{                alert('The count of arguments is wrong.');                document.write('<br>');                return;            }            document.write('======================' + '<br>');        }        test(10,20);        test();        test('aaa','bbb','ccc');        function  fact(a) {            if(a==1){                return 1;            }else{                return a*fact(a-1);            }        }        function  Fact(a) {            if(a==1){                return 1;            }else{                return a*arguments.callee(a-1);            }        }        window.document.write(fact(5) + '<br>');        window.document.write(Fact(5) + '<br>');        var F = Fact;        Fact = null;        window.document.write(F(5) + '<br>');        var f = fact;        fact = null;        //WRONG        window.document.write(f(5)) + '<br>';    </script></head><body></body></html>


  • 函数的参数:arguments对象

  arguments是表示函数的实际参数(与形参无关)

  • callee函数(回调函数属性)

arguments对象的秘密属性callee属性:

这个属性比较奇怪,他能返回arguments对象所属的函数的引用,这相当于在自己的内部调用自己。

用法:例如检测函数传递的参数正确与否





0 0