函数参数arguments共享问题
来源:互联网 发布:湖人王朝时期科比数据 编辑:程序博客网 时间:2024/05/29 08:32
函数参数arguments共享问题
- 在JavaScript中,传进来的函数参数可以用函数上下文里的内部对象arguments访问1.。它包括如下属性:
- callee:指向当前函数的引用,
- length : 实际传递进来的参数的个数
- properties-indexes (字符串类型的整数) 属性的值就是函数的参数值(按参数列表从左到右排列)。 properties-indexes内部元素的个数等于arguments.length. properties-indexes 的值和实际传递进来的参数之间是共享的
所以,我们一般通过arguments[0]这种形式可以访问到传进来函数的参数值,实际上是通过arguments的properties-indexes属性来访问。根据properties-indexes属性的定义,arguments[0]这种访问函数参数的方式只能和实际有传进来的参数共享,对于那些函数声明定义里面存在却在函数执行时未真正传进来的参数,不能与arguments[0]这种方式共享。
<html><body><script type="text/javascript">function foo(x, y, z) { alert("[x]"+x); arguments[0] = 450; alert("[x]"+x); alert(y); // undefined y = 30; arguments[1] = 50; alert(y); // 30}foo(10);</script></body></html>
在上面代码中我们看到,我们在函数中传进来一个参数x的值,在函数内部通过arguments[0]这种方式去改变函数参数的值,只有对x的改变生效,当使用 arguments[1]的方式去改变y的值,发现改变后不能和y共享。
刚开始了解学习ecmascript规范相关的新人
- http://dmitrysoshnikov.com/ecmascript/ru-chapter-2-variable-object/ ↩
0 0
- 函数参数arguments共享问题
- 函数参数赋值问题(arguments)
- js 函数的参数 问题 arguments对象 及闭包
- javascript函数参数数组arguments
- 函数参数Variable-length Arguments
- EXT传递参数的问题 js函数的参数传递(arguments)
- Python 函数 参数 形式 Default Argument Keyword Arguments Formal Arguments
- 函数的实际参数:Arguments对象
- JS函数的参数(arguments)的使用
- js函数参数对象arguments对象分析
- ECMA函数参数arguments的使用
- javascript函数参数的arguments对象
- JS函数的参数(arguments)的使用
- 理解Javascript_14_函数形式参数与arguments
- JS函数的参数(arguments)的使用
- 获取函数参数arguments的方法
- JavaScript中函数的arguments对象(不确定函数参数)
- javascript:传递给函数的隐含参数:arguments
- (4.1.50)简洁优雅地实现夜间模式
- uefi bds boot flow
- 烟花爆炸色彩效果—ExplosionField
- spring中应用模板模式封装ElasticsearchTemplate
- Spring Annotation Transaction
- 函数参数arguments共享问题
- VS2010+ visualgdb无法查看变量值的解决方案
- java_IO,反射机制,jdk动态代理
- 李笑来《把时间当作朋友》1
- Android Mashup
- Oracle
- MySQL的跨年周统计问题(%X-%V)
- 向量的叉乘(求面积)
- HDU 1262 寻找素数对