Javascript(强推荐)中参数对象的深入分析
1。在Javascript中,争论的对象是一个比较特殊的对象,实际上是当前函数的内置特性。参数是数组非常相似,但它实际上并不是一个数组的实例,可以用下面的代码进行验证(当然,事实上,在功能funcarg,调用参数是不必要的写funcarg.arguments,写论据直接)。array.prototype.testarg =测试;
功能funcarg(){
警报(funcarg。争论。testarg);
警报(funcarg。论点{ });
}
警报(新)阵列(。testarg); / / 测试结果:
FuncArg(结果); / / 的定义
2、一个参数对象的长度是由争论而不是数量的参数的数量确定。参数变量在函数重新存储空间,但不与争论的对象的内存空间重叠。对于双方争论和价值,都是同步的,但其中的一个,这个值不同步时,是没有价值的。下面的代码可以验证。
函数f(a,b,c){
警报(参数、长度)
=一个;
警报(参数{ })
论点{ } =qqyumidi ;
警报(一); / /结果:qqyumidi
警报(c);结果:未定义
= C;
警报(参数{)
}
f(,);
三.通过Javascript中函数的声明和调用特性,可以看出Javascript中的函数不能重载。
根据其他语言重载的基础:函数的值不同或参数的数量不同
首先:Javascript函数的声明是没有返回值类型。
第二,Javascript中的形参只是为了方便函数中的变量操作,事实上,它实际上存储在参数对象中。
此外,从Javascript函数本身,我们可以理解为什么不能重载Javascript函数。在Javascript中,函数也是对象,函数名是函数的引用,函数名本身就是变量。(不考虑函数声明和函数表达式之间的差异),我们很有必要了解Javascript中的函数不会重载。
函数f(a){
返回+1;
}
函数f(a){
返回—;
}
在不考虑函数声明和函数表达式差异的情况下,等价于以下内容
函数(a){
返回+1;
}
函数(a){
返回—;
}
4,有一个非常有用的参数对象的属性:callee.arguments.callee返回arguments对象当前函数参考。建议使用arguments.callee代替函数名本身使用函数递归调用的时候。
如下:
函数计数(a){
如果(= =){
返回;
}
返回一个+ arguments.callee(--);
}
var =计数();
警报(mm);
以上是萧边在论证对象介绍Javascript的,希望对大家有所帮助,如果你发现咨询过程中有任何问题,请给我留言,萧边会及时回复大家,这也是对网站的支持,大家都很感激!