Javascript - 通过引用访问对象会产生很大的性能损失吗?

时间:2016-07-26 18:36:50

标签: javascript performance reference

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()方法),为什么?

1 个答案:

答案 0 :(得分:0)

没有,真的。

var p = obj.prop
p.a

obj.prop.a

完全等效,可以优化局部变量。在函数调用(access(this.prop))的情况下,在函数内联之前,参数可能无法优化,但仍然几乎没有任何区别。

如果多次访问p而不是多次访问obj.prop,可能会有所不同,但即便如此,现代引擎也可以优化。

任何性能差异都可以忽略不计。但javascript并不是一种你无论如何都会进行这种微观推广的语言 - 如果你编写标准代码,引擎会为你的优化进行优化。