0

我们对使用对象时的最佳实践有一些争论。我们中的一些人使用以下方式获取对象属性值:

object[a][b][...][z] 

其他人声称,如果您使用以下代码一次

var ref=object[a][b][...][z]

然后在您需要更快的特定对象值时随时使用“ref”变量。

有谁知道在第二种情况下是否有优化?例如,如果您需要循环穿过大对象:

//with reference
for(var a in object){

    for(var b in object[a]){

        ...

            var ref=object[a][b][...][y];

            for(var z in object[a][b][...][z]){

                if(ref){
                    ....
                }
            }
        ...
    }
}

//without reference
for(var a in object){

    for(var b in object[a]){

        ...

            for(var z in object[a][b][...][z]){

                if(object[a][b][...][y]){
                    ....
                }
            }
        ...
    }
}
4

1 回答 1

1

'ref' 版本可以节省您的对象查找,因此它应该更快。

jsperf 测试证实了这一点:http: //jsperf.com/ref-or-no-ref

于 2012-08-17T11:55:28.337 回答