1

考虑以下 JavaScript 全局对象:

var obj = { key1: [ 'data1', 'data2', ... ], key2: [ 'data1, 'data2', ... ], ... }

假设我有一个函数需要修改分配给obj. 使用局部变量进行计算并在函数末尾修改数组是否更有效,还是应该直接修改数组,因为它不在对象内部?

本质上,我在问哪个功能更有效:

function local_variable() {
    var foo = [];
    $( selector ).map(function() {
        foo.push( $( this ).val() );
    });
    obj[ keyx ] = foo;
}

相对

function global_object() {
    obj[ keyx ] = [];
    $( selector ).map(function() {
        obj[ keyx ].push( $( this ).val() );
    });
}

与往常一样,如果有更好的方法来完成这些功能的工作,请赐教。

4

2 回答 2

3
function adeneos_object() {
    obj[ keyx ] = $.map($( selector ),function(el){return el.value;});
}
于 2013-06-15T19:52:10.483 回答
1

jsPerf 附带帮助

显然,每次访问对象的属性 ( global_object) 比数据获取和进一步分配 ( local_variable) 慢。

但是,如您所见,这取决于特定浏览器(Firefox,几乎相等)使用的优化策略。

于 2013-06-15T20:01:47.553 回答