为啥函数会声明“myVariable = myVariable;”?

Posted

技术标签:

【中文标题】为啥函数会声明“myVariable = myVariable;”?【英文标题】:Why would a function state "myVariable = myVariable;"?为什么函数会声明“myVariable = myVariable;”? 【发布时间】:2012-02-18 22:37:42 【问题描述】:

在使用我们开发团队的一些 as2 代码的过程中,我遇到了一些令人费解的语句,其中变量被设置为它们自己。是否有一些我没有想到的冗余的原因?

我是这样说的:

function timeLine(x,w)
  x = x;
  p = ((x) * 100) / w;
  t = v.totalTime;
  n = (t * p) / 100;
  n = n;

我错过了什么? (当我们在这里时,(x)是什么?我假设它曾经是(x + z)......)

【问题讨论】:

也许他们是通过编写的代码行获得报酬的...... @Greg 我可以,但我有点害怕......但是,如果没有容易辨别的原因,我会假设它曾经是 x = somethingElse 并且他们的清理实践并不强大. 【参考方案1】:

为什么函数状态为myVariable = myVariable;

因为编写它的程序员不称职。你没有遗漏任何东西,编写该代码的人最初并不知道他们在做什么。

如果那是 AS3 代码,他们可能会通过函数参数设置类变量,但最好使用this 显式完成以显示变量不同:

function foo(bar, baz) 
  this.bar = bar;
  this.baz = baz;

此外,AS3 还具有可能导致副作用的访问器和修改器。如果是这样的话,程序员不仅不称职,而且很危险。

【讨论】:

以上是关于为啥函数会声明“myVariable = myVariable;”?的主要内容,如果未能解决你的问题,请参考以下文章

为啥在声明子类的对象时会调用超类的构造函数? (爪哇)

为啥在嵌套函数之外声明一个计数器变量会使循环慢 5 倍?

为啥当我在函数中声明一个名称为全局数组的局部数组时,bash 会引发未绑定变量警告?

为啥函数需要在使用前声明?

为啥需要在定义或使用函数之前声明它?

为啥 gcc 给出警告:函数 qsort_r 的隐式声明?