2

我正在开发一个 JS 来根据当前 url 的哈希显示不同的消息。现在,一切正常,但我想知道访问我的消息的最佳方式是什么(它们将被编码到一个 .js 文件中)

目前,我将消息存储在这样的对象中:

popups = {
    TemplateMessage: {
        title: "Template Popup Title", 
        message: "This is a template popup message! Copy this to add a message.",
        modal: true
    },
    AnotherMessage: {
        title: "another title", 
        message: "message.",
        modal: true
    } /* etc */
};

我访问这些消息的方式是使用“for in: 循环,如下所示:

for (key in popups) {
    //Do something with...
    popups[key].title;
    popups[key].message;
    popups[key].modal;
}

但是将 popups[key] 分配给临时变量会更有效吗?像:

var p;
for (key in popups) {
    p = popups[key];
    //Do something with...
    p.title;
    p.message;
    p.modal;
}

目前这一切都是相对较小的规模,在这个阶段它并不重要(如果有的话),但是如果你有 25 个不同的对象,每个对象有 50 个属性怎么办?我想我真正的问题是,从临时变量或从对象中的对象获取变量是否存在(相对)显着差异?

我不太确定如何正确测试这个,有什么建议吗?

4

1 回答 1

1

事实证明,将您分配给具有大对象object[key]的循环中的临时变量确实更快,如jsPerf test 所示。这样,您就不必获取对象的每个属性。for-inobject[key]

于 2012-11-27T11:11:11.767 回答