在某些情况下,我喜欢通过为变量名加前缀来按上下文对变量进行分组,例如(例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
};
};
答案 0 :(得分:2)
您要找的单词是名称空间。并且,在JavaScript中,对象的工作非常棒。
绝对是最常用的命名空间声明语法。
答案 1 :(得分:2)
正如所指出的那样,这就是对象的用途,它们可以为数据命名空间。
然而,使用对象可能有一个缺点:如果您的代码对性能至关重要,那么您应该依赖局部变量 - 尽管聪明的选择通常是在对象中保存(组!)数据然后只是分配它们关键代码中的局部变量。
原因是属性查找比查找局部变量花费的时间更长。这意味着
for (var i = 0; i <= 100000; i++) {
doSomething(myObj.subObject.anotherObject[i]);
}
如果避免使用常量查找链,将执行得更快:
var actuallyNeeded = myObj.subObject.anotherObject;
for (var i = 0; i <= 100000; i++) {
doSomething(actuallyNeeded[i]);
}
只要您的代码在性能方面不重要,当然这是不必要的。