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

时间:2015-04-24    点击:140   

通过一个例子来理解下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){}"

js上传图片及预览功能实例分析
浅谈jquery事件处理
javascript中replace( )方法的使用
javascript实现漂亮的拖动层,窗口拖拽特效
Javascript中arguments和arguments.callee的区别浅析
> 返回     
地址:上海市普陀区胶州路941号长久商务中心 电话: QQ:
© Copyright 2012 上海网络 Product All Rights Reserved