在JavaScript / JQuery中创建对象的成本

时间:2012-07-07 19:59:07

标签: javascript jquery

有人可以比较和对比在JavaScript / JQuery中创建对象的成本和简单的变量声明吗?

例如:

var G = {}
G.obj = (function(){
        var x = 10; //'private' attribute, can be accessed internally only
        G.y   = 20; //'public'  property
        });

x显然有一个局部范围,因为Y可以通过带选择器的 G 公开访问。后一种方法是否涉及任何重大开销?

感谢。

编辑:我意识到这可能听起来像一个愚蠢的问题,但我正在计划一个HTML5游戏的架构,我必须在我前进时记住这些事情。

1 个答案:

答案 0 :(得分:2)

首先,您并没有真正在代码块中执行该功能。

G.obj = (function(){
    var x = 10; //'private' attribute, can be accessed internally only
    G.y   = 20; //'public'  property
    })();

现在,就创建局部变量v / s全局属性的成本而言,AFAIK,在遍历范围链时,访问(获取/设置)全局属性会稍微昂贵一些。范围链中的属性越高,成本越高。但是,这不是一个问题恕我直言。

更大的问题是您选择在全球商店中贴东西。使用局部变量很有用,因为局部变量在函数完成执行后不会停留。因此,你不要在内存中保留不必要的状态。这个IMO应该推动您的设计在哪里为您的应用保持状态。