我试图将2个变量声明为相同的值(false)。
我倾向于在整个地方做这件事(比如几乎每个我原型的对象)
var $a= {border:false
,frame:false};
或者
border=false;frame=false;
有没有更好的方法可以同时声明两者的值? (例如代码高尔夫解决方案)
答案 0 :(得分:3)
如果在设置值时声明了两个变量,则可以。这有点古怪,但它有效:
var frame,
border = frame = false;
(这是我认为最短的时间)
更好吗?我不这么认为,你真的没有多少钱。更具可读性
var frame = false,
border = false;
实际上你可以做更多的组合,但如果不重复变量名或值,你就无法做到。例如。你也可以这样做:
var frame = false,
border = frame;
当然这仅适用于原始值(即布尔值,(文字)数字,(字面)字符串)。如果处理对象(包括数组),则两个变量都将引用同一对象。在这种情况下,您必须单独初始化它们:
var frame = {},
border = {};
// DON'T DO THIS:
var frame,
border = frame = {};
更新,因为我觉得有必要解释为什么var border = frame = false;
不工作:
var
此处不具有传递性,此表达式实际上是从右到左进行评估的。首先,false
被分配给frame
,它将在范围链中查找,在最坏的情况下将变为全局。然后将frame
的值分配给局部变量border
。
答案 1 :(得分:2)
你可以这样做:
var border = frame = false;
答案 2 :(得分:1)
考虑:
var border, frame;
border = frame = false;