【发布时间】:2013-05-25 11:02:08
【问题描述】:
在某些情况下,我喜欢通过在变量名称前加上前缀来按上下文对变量进行分组,例如(示例 1)
var context_var1 = "value";
var context_var2 = "value";
var context_var3 = "value";
var context_var4 = "value";
现在我正要编写一个脚本,我查看了不同的声明样式,例如“only-one-var-keyword-style”(示例 2)
var context_var1 = "value",
context_var2 = "value",
context_var3 = "value",
context_var4 = "value";
或“逗号优先样式”(示例 3)
var context_var1 = "value"
, context_var2 = "value"
, context_var3 = "value"
, context_var4 = "value"
;
。但说实话,我真的最喜欢第一个例子。 个人我认为它是最易读的风格。 但是我想到了以下几点:
var context = {
var1 : "value",
var2 : "value",
var3 : "value
};
然后我可以通过
console.log(context.var1);
那你怎么看。使用 JavaScript 对象作为某种变量存储是个好主意吗?
编辑: 由于它被请求了几次,下面是一个真实的例子,我将一些变量存储到一个对象中。
/**
*
* Dom nodes which will be used a couple of times on various places.
* Grouped into an object by context.
*
* @type {DOM nodes}
*
*/
var $dom = {
document : $( document ),
head : $( "head" ),
body : $( "body" )
};
/**
*
* Calculate values based on the document height and
* window width.
*
* @return {Object}
*
*/
var gauge = function() {
var body_fontsize = parseInt($dom.body
.css( "font-size" )
.replace( "px", "" ), 10
);
var window_width = window.screen.availWidth;
var document_height = $dom.document.height();
var bline_count = Math.round( document_height / body_fontsize );
var vline_count = Math.round( window_width / body_fontsize );
return {
width : window_width,
height : document_height,
baselines : bline_count,
vertlines : vline_count
};
};
【问题讨论】:
-
如果不存储一些数据,你认为 JS 对象是做什么用的?
-
@zerkms 当然可以。但声明简单变量的常用方式似乎“总是”类似于示例 1-3。
-
@Ube 也许在过程编程中。不在javascript中。
-
这取决于...嗯...上下文。前三个我喜欢第一个,喜欢你。有时将对象中的变量分组是有意义的。例如,它可以更容易地将它们作为参数传递。其他时候,它们不作为一个单元使用。当你已经在一个函数里面时,你已经在一个共同的上下文中了。所以这真的取决于它们的用途,以及什么在概念上有意义。我对第四个选项的结论,保留在你的工具箱中,并在有意义的时候使用它。
-
+1 表示上述内容。向我们展示您的实际代码,而不是虚构的示例。
标签: javascript variables object coding-style