【问题标题】:In Javascript, is there a name for the following: variable = variable = value;在 Javascript 中,是否有以下名称:变量 = 变量 = 值;
【发布时间】:2012-06-26 14:48:02
【问题描述】:

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

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

显然ij 都设置为1。但是这种做法有名称吗?另外,就良好的编码标准而言,通常会避免这种事情吗?我还能获得一个例子或解释为什么它是/不是好的做法吗?

【问题讨论】:

标签: javascript coding-style


【解决方案1】:

正如丹尼尔所说,它被称为链式分配。通常会避免这种情况,因为对于某些值(例如对象),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 会是什么,您可能会遇到问题

【讨论】:

  • 谢谢,这正是我想要的。我本可以发誓我之前尝试过一次,它扭曲了我想要做的事情,这解释了它。再次感谢您!
【解决方案2】:

我相信它被称为“赋值链”。

我们说赋值是“右结合的”。这意味着

i = j = 1;

等价于

i = (j = 1);

j = 1 会将数字 1 分配给 j,然后返回 j 的值(现在是 1)。

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2015-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-24
      相关资源
      最近更新 更多