【问题标题】:Homonymous function parameters and private variables [closed]同名函数参数和私有变量
【发布时间】:2023-03-06 15:03:01
【问题描述】:

当不得不在 JavaScript 中格式化或转换某些函数参数时,我通常会创建同名私有变量(与函数参数同名的私有变量):

function myFunction(param) {
  var param = Math.floor(param);
  // More code referencing param many times here...
}

问题:这被认为是不好的做法吗?有什么我应该担心的缺点吗?

【问题讨论】:

  • 如果重复声明与示例中一样明显,我个人认为这是一种不好的做法。但是,在长变量初始化(可能是多行 var 声明)中,如果它看起来很奇怪,那也可以。
  • @bergi 你能开发出你认为不好的地方吗?不是说它不是(好或坏),只是想了解你的理由。我应该指出修改后的参数可以在函数的代码中多次引用。如果它只使用一次,我显然不会为它创建一个变量。
  • 如果你正在访问一个原语,那是没有必要的,因为你可以直接修改参数。如果您正在访问可能在此上下文之外共享的引用,这是一种不好的做法,因为如果您在现在和那时之间更改您的样式并忘记,那么它更有可能使之后正在阅读您的代码的人或您在一年后一目了然地感到困惑关于你以前的怪癖。
  • 本质上并不坏。有人投票结束这个问题的事实意味着没有最终的理由支持或反对这一点。如果您觉得合适,我会说使用它。
  • @IsmaelGhalimi 遗憾的是,这里的人们不喜欢会引起辩论的问题,而对于没有明确答案的最佳实践问题,通常就是这种情况。 一些此类问题可能适合programmers.stackexchange.com,具体取决于您的措辞方式。

标签: javascript naming naming-conventions


【解决方案1】:

var 被解释器忽略,这没有定义第二个变量。因此,您不妨节省输入 4 个额外字符的时间 :)

做同样的事情:

var var1 = 2;
var var1 = 3;

【讨论】:

  • 我想说得更强烈:因为它没有任何事情,所以它是不正确的。不正确,这不是最佳实践。不要编写假装做不工作的程序!
猜你喜欢
  • 2011-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多