有人可以比较和对比在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游戏的架构,我必须在我前进时记住这些事情。
答案 0 :(得分:2)
首先,您并没有真正在代码块中执行该功能。
G.obj = (function(){
var x = 10; //'private' attribute, can be accessed internally only
G.y = 20; //'public' property
})();
现在,就创建局部变量v / s全局属性的成本而言,AFAIK,在遍历范围链时,访问(获取/设置)全局属性会稍微昂贵一些。范围链中的属性越高,成本越高。但是,这不是一个问题恕我直言。
更大的问题是您选择在全球商店中贴东西。使用局部变量很有用,因为局部变量在函数完成执行后不会停留。因此,你不要在内存中保留不必要的状态。这个IMO应该推动您的设计在哪里为您的应用保持状态。