有这个名字吗?这是我想说的一个例子:
var i = 0;
var j = 0;
i = j = 1;
很明显两者i
和j
都设置为 1。但是这种做法有名称吗?另外,就良好的编码标准而言,通常会避免这种事情吗?我还可以获得一个示例或解释为什么它是/不是好的做法吗?
有这个名字吗?这是我想说的一个例子:
var i = 0;
var j = 0;
i = j = 1;
很明显两者i
和j
都设置为 1。但是这种做法有名称吗?另外,就良好的编码标准而言,通常会避免这种事情吗?我还可以获得一个示例或解释为什么它是/不是好的做法吗?
正如丹尼尔所说,它被称为链式分配。通常会避免这种情况,因为对于某些值(例如对象),该行i = j = _something_
会创建一个引用 from i
to j
。如果你以后改变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/
如果您不知道将要做什么i
,j
您可能会遇到问题
我相信它被称为“分配链”。
我们说赋值是“右结合”。这意味着
i = j = 1;
相当于
i = (j = 1);
j = 1
将数字分配给1
然后j
返回 j 的值(现在是1
)。
有时它被称为“链式赋值”,有时被称为“多变量赋值”。此外,您可能想查看此问题的答案。