在数组中存储javascript变量

在数组中存储javascript变量,javascript,arrays,variables,scope,performance,Javascript,Arrays,Variables,Scope,Performance,我确信有人对此进行了研究,但我没有运气找到一些结果。 我想知道维持适当变量范围的最快方法是什么。 下面是我今天早上编写的一些jquery代码示例 var oSignup = { nTopMargin: null, oBody: $("div#body"), oSignup: $("div#newsletter_signup"), oSignupBtn: $("div#newsletter_signup a.btn-s4") } oSignup.nTopMargi

我确信有人对此进行了研究,但我没有运气找到一些结果。 我想知道维持适当变量范围的最快方法是什么。 下面是我今天早上编写的一些jquery代码示例

var oSignup = {
    nTopMargin: null,
    oBody: $("div#body"),
    oSignup: $("div#newsletter_signup"),
    oSignupBtn: $("div#newsletter_signup a.btn-s4")
}

oSignup.nTopMargin = Math.abs(oSignup.oSignup.offset().top);
oSignup.oSignupBtn.toggle(function(){
    oSignup.oSignup.css({"top":0});
    oSignup.oBody.css({"top":oSignup.nTopMargin});
},function(){
    oSignup.oSignup.css({"top":-(oSignup.nTopMargin)});
    oSignup.oBody.css({"top":0});
});
这是好的还是坏的做法?

这不是“理想的”。以下是问题:

  • 不要混合/匹配声明样式,如果所有事情都可以在{}声明中完成,那么就这样做,如果不能,就要非常明智地选择事情
  • 不要让对象的名称与其包含的字段相同。这当然是有效的,但不是一个“好”的想法,很难理解和维护
      我和佐伊德伯格在一起。这很好。事实上,它比我见过的许多其他版本都要优雅得多,而且我会给它的代码评审打分+1。

      本质上,您所说的是名称空间。也就是说,将应用程序的变量和逻辑与其他内容分开。只要你意识到不这样做的陷阱,你就比大多数人(不包括现在的公司)高得多


      迈克尔的建议简洁而真实,但你的方向是正确的。如果您想了解更多有关名称空间的最佳实践的建议,只需在谷歌搜索中查看大多数最热门的结果,特别是这将为您提供一种密集但非常通用的名称空间方式以及更多信息。

      什么是好的做法还是坏的做法?小挑剔:您将它们存储在一个对象中,不是array@Johnathan:我的变量创建/使用方法是不受欢迎还是更受欢迎?为什么?这将是我的终极问题。@Cobbal:呸,我错了。使用正确的术语从来没有这么好。我更喜欢视觉学习!但是,是的,谢谢你指出这一点。我认为范围很好,我要注意的一点是,在你的函数中不要说oSignup.oSignup.css,引用全局变量是不好的,用this.oSignup.css代替。@Zoidberg:但是
      this
      oSignup.oSignupBtn
      !是的,我很快就意识到我在发布后做了什么。我已经改变了。除了我的名字间隔错误,这是首选的方法吗?范围对我来说很重要,但速度更重要。创建变量的标准方法是否更快?IE:var foo=“bar”;