Javascript中arguments和arguments.callee的区别浅析

内容摘要
通过一个例子来理解下arguments与arguments.callee的具体区别:
代码如下:
复制代码 代码如下:

<script type="text/javascript">

function check(args){
文章正文

通过一个例子来理解下arguments与arguments.callee的具体区别:

代码如下:

复制代码 代码如下:

<script type="text/javascript">        
        function check(args){            
            var ac = args.length; 
            var ex = args.callee.length; 
            document.write("ac:" + ac + '<br>'); 
            document.write("ex:" + ex + '<br>'); 
            if (ac != ex) { 
                document.write("wrong number of arguments: expected: " + ex + "; actually passed" + ac + '<br>'); 
            } 
        } 
        function f(x, y, z) { 
            check(arguments); 
            document.write(x + y + z); 
        }             
    </script> 

调用方法:

复制代码 代码如下:

<input name="wr" type="button" value="调用" onclick="f(1,2)" /> 

运行后的结果为:
复制代码 代码如下:

ac:2
ex:3
wrong number of arguments: expected: 3; actually passed2
NaN

我的理解:

arguments即调用对象,就是调用这个方法的对象
arguments.callee即当前对象,实际上就是返回当前执行的函数对象
通过这个例子,可以看出
arguments实际上是指函数“f(1,2)”
argument.callee实际上是指"function f(x,y,z){}"


代码注释

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!