在Javascript中,是否有以下名称:variable = variable = value;

时间:2012-06-26 14:48:02

标签: javascript coding-style

这有名字吗?这是我想说的一个例子:

var i = 0;
var j = 0;
i = j = 1;

显然,ij都设置为1.但这个练习有没有名称?另外,就良好的编码标准而言,这种类型的东西通常是否可以避免?我还能得到一个例子或解释为什么它不是好的做法吗?

3 个答案:

答案 0 :(得分:5)

正如丹尼尔所说,它被称为链式任务。通常会避免这种情况,因为对于某些值(例如对象),行i = j = _something_会创建从ij的引用。如果您稍后更改j,则i也会更改。

var i = {};
var j = {};
i = j = {a:2};
j.a = 3; //Now, j.a === 3 AND i.a === 3

请参阅此jsFiddle演示中的示例:http://jsfiddle.net/jackwanders/a2XJw/1/

如果你不知道ij会是什么,你可能会遇到问题

答案 1 :(得分:1)

我认为它被称为“分配链”。

我们说任务是“正确联想”。这意味着

i = j = 1;

相当于

i = (j = 1);

j = 1会将号码1分配给j,然后返回j的值(现在为1)。

答案 2 :(得分:0)

有时它被称为“链式分配”,有时称为“多变量赋值”。另外,您可能希望查看this问题的答案。