浅谈argument 与 callee()

在阅读JavaScript权威指南时遇到了 Aragument对象,对其中的argument 与argument.callee()有点困惑,后来

研究后总算理解了,我是如下理解的,如有不同,欢迎留言:

 

argument  即 调用对象(这是书本翻译的)

        一开始还不是很明白,后来通过后面的argument.callee()印证,总算搞清楚了,

        调用对象,就是调用这个方法的对象(这也许就译文比原文差的地方了,要是英语水平好,还是看原文的好),

        这个与Java的super调用有点相似;

argument.callee()  即 当前对象

                                  (实际上是返回当前执行的函数对象,我们这里可以用“当前对象”去理解) 与Java的this 相似;

 

argument 与argument.callee()  跟 super & this 对比学习就很容易明白了,

我想设计argument 与argument.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>

 

在调用方法时,我故意少传了一个参数,大家运行一下,仔细看看 ac 与 ex的区别

  

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值