Javascript-通过引用访问对象会对性能造成很大影响吗
Javascript - Does accessing objects through a reference incur much of a performance hit?
function Obj()
{
this.prop = { a: 1, b: 2 };
this.access();
access(this.prop);
}
Obj.prototype.access = function()
{
// accessing 'this.prop' directly
}
function access(property)
{
// accessing 'this.prop' through local reference 'property'
}
通过对象引用间接访问Obj.prop
(如全局access()
函数所示(与直接访问(如Obj
的access()
方法所示(会对性能造成多大影响,原因是什么?
真的没有。
var p = obj.prop
p.a
和
obj.prop.a
是完全等效的,则可以优化出局部变量。在函数调用(access(this.prop)
(的情况下,在函数内联之前,参数可能无法优化,但仍然几乎没有任何区别。
如果p
被多次访问而不是obj.prop
被多次访问,这可能会有所不同,但即使在现代引擎中,这也得到了很好的优化。
任何性能差异都可以忽略不计。但javascript并不是一种无论如何都会进行这种微优化的语言——如果你编写标准代码,引擎会很好地为你优化它。
相关文章:
- NodeJ中的注释会影响性能吗
- javascript getAttribute是否会影响性能或触发布局
- 角度 1 路绑定不影响性能
- 数字精度如何影响 JavaScript 的性能,或者会影响性能
- 函数和对象之间的差异,以及它如何影响性能
- 打开的 APE(Ajax 推送引擎)通道的数量如何影响性能
- 对数组使用delete和后续的.push()会影响性能/内存消耗
- 使用两个或多个$(document).ready会影响性能吗
- 隐藏具有特定ID的元素的最佳方法是什么;不会影响性能
- 使用局部变量(而不是重复的属性访问)是否会影响性能
- id太多会影响性能吗
- 将多个事件处理程序绑定到滚动事件是否会影响性能
- 空try-catch如何影响性能
- 为DOM深处的元素设置动画真的会影响性能吗
- AngularJS -当模型变大时,调用$apply()会影响性能吗?
- 为循环条件缓存数组长度会影响性能吗?
- Angular JS HTML中相同表达式的数量会影响性能吗?
- “Interiting"From null对象似乎不会影响性能
- jQuery无限嵌套会影响性能吗?
- 递增未定义的对象属性而不影响性能