Pac*_*ier 10 javascript web-services
我听说很多人说访问参数对象很昂贵.(例子:为什么在JavaScript中不推荐使用arguments.callee.caller属性?)
顺便说一句,这句话到底意味着什么呢?是不是只是简单的属性查找访问参数对象?到底有什么大不了的?
Bor*_*sky 14
重要的是至少有两个方面:
1)访问arguments对象必须创建一个arguments对象.特别是,每次调用函数时,现代JS引擎实际上并不为参数创建新对象.它们在堆栈上传递参数,甚至在机器寄存器中传递参数.arguments但是,一旦触摸,他们就必须创建一个实际的对象.这不一定便宜.
2)一旦你触摸了arguments对象,JS引擎可以以其他方式执行的各种优化(例如,检测你从未分配给一个参数并优化该常见情况的情况)就会出现.对函数参数的每次访问,而不仅仅是对函数的访问arguments变得慢得多,因为引擎必须处理你可能已经通过参数搞乱的事实arguments.
| 归档时间: |
|
| 查看次数: |
377 次 |
| 最近记录: |