validationError([elem1,elem2],type,shiftNo);

要么
var arr = [elem1,elem2];
validationError(arr,type,shiftNo);

我要问的是调用方法的方法1被认为是不好的(它也有任何性能方面的影响)。因此,在参数内部声明字符串,对象和函数是一种不好的方法。

最佳答案

性能不是问题,不是使用JS,Ruby或其他语言。因此,我们所能做的就是考虑代码的可读性。而且这种情况与JS无关,所以我的例子也一样。

move = ["E2", "E4"];
if chessboard.valid(move, player) {
  ...
}

这清楚地表明:“如果此棋盘的移动(E2 E4)有效,那么...”,您甚至无需查看文档即可知道。如果我们在不给数组分配名称的情况下编写该代码,则结果看起来有些晦涩(仍然很容易猜到,但对于这样一个小例子来说却很难):
if chessboard.valid(["E2", "E4"], player) {
  ...
}

这是什么意思? valid在这里代表什么?也许是在问这些单元格是否包含有效的玩家棋子?这是设计缺陷的征兆,更确切地说是不良的命名。它对如何使用棋盘代码做出了大胆的假设。通过重命名chessboard的方法,我们可以很明显地看到此数组代表一个 Action :
if chessboard.valid_move(["E2", "E4"], player) {
  ...
}

这样比较好,但是您可能没有一个无需任何其他命名即可让您的代码保持可读性的API。

所以,我建议一个经验法则:
  • 如果将多次使用该数组,请命名它。
  • 如果数组的含义从其位置(功能名称)不明显,请命名它。
  • 除非命名为1或2,否则不要命名。
  • 09-11 23:41