1

有人可以比较和对比在 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 游戏规划一个架构,在我前进的过程中,我必须牢记这些小事。

4

1 回答 1

2

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

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

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

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

于 2012-07-07T20:36:50.240 回答