Javascript中的arguments对象在FCKeditor中的应用

因为编辑反应FCKeditor编辑器有些bug,所以需要研究他的核心代码。可恶的是作者竟然把 fckeditorcode_ie.js 这个文件中的所有换行、缩进等格式全部消除了,一个对象一行,根本无法阅读,所以只好手动恢复格式,也正好可以一行一行地研究代码。话说看到这一段:

不理解 var A=arguments; 是什么意思。从网上搜索了一下,才知道原来JavaScript也有这种强大的功能:用这个内置对象获取函数的参数。A.length就表示参数的长度,A[0]就表示第一个参数。

很类似于数组,但是又没有pop()、push()等方法。那么问题出现了:if(A.length==1&&A[0].pop) A=A[0]; 一句中,A[0].pop 是什么意思呢?于是写了一个测试脚本:

弹出的A[0].pop的值是 undefined 。想了一会儿觉得,他的意思应该是这样的:

就是说,如果参数只有一个,而且第一个参数是数组的话,就把这个数组当成参数对象。

 

通过这个例子,还发现了:如果一个对象有一个方法,比如Array对象有pop()方法,那么这个对象相应地有个属性,属性名是方法名去掉括号,比如Array.pop ,属性的值是方法的函数体。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值