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
&#39所示) ; s access()
方法),为什么?
答案 0 :(得分:0)
没有,真的。
var p = obj.prop
p.a
和
obj.prop.a
完全等效,可以优化局部变量。在函数调用(access(this.prop)
)的情况下,在函数内联之前,参数可能无法优化,但仍然几乎没有任何区别。
如果多次访问p
而不是多次访问obj.prop
,可能会有所不同,但即便如此,现代引擎也可以优化。
任何性能差异都可以忽略不计。但javascript并不是一种你无论如何都会进行这种微观推广的语言 - 如果你编写标准代码,引擎会为你的优化进行优化。