2013-06-24 38 views
0

我想知道JavaScript是否允许在一个语句中使用多个赋值赋值运算符。我知道多变量分配,讨论here多个加法赋值运算符在一个语句中

我的编码方式目前看起来有点像这样:

var x = someComplicatedFunction(); 
foo += x; 
bar += x; 

有没有办法做这样的事情?

foo, bar += someComplicatedFunction(); 
+0

你是否试图将'foo'和'bar'设置为相同的值?或试图将相同的值添加到两者? –

+0

@LeeMeador我想为两者添加相同的值。 –

回答

2

你可以把尽可能多的语句,你在一行想:

var x = someComplicatedFunction(); foo += x; bar += x; 

如果你想在一个声明中做的一切,它更混乱,但它是可行的:

bar -= foo - (foo += someComplicatedFunction()); 

但是没有什么不可思议的让你在一个声明中做所有事情,而不需要分配可读。

+3

第二种说法非常聪明,尽管以可读性为代价。我想知道JavaScript是否有一些我不知道的语法糖。 –

+0

请注意,使用第二种形式的唯一原因是避免混淆命名空间。它不会更快(它比使用IIFE来避免x变量更快,但您很少需要增加两个变量而不会处于可能污染的局部范围内)。 –

+1

[人们想知道perfs的jsperf](http://jsperf.com/dblass)。 –