使用参数 vs 全局变量——代码可读性/可维护性

Using parameters vs global variables -- Code readability / maintainability

我试图了解可读性与在我的代码中重复自己之间的最佳平衡点。

我正在 Javascript 创造康威的人生游戏。我的函数像这样一遍又一遍地使用许多相同的变量...

const BOARD_HEIGHT = 50
const BOARD_WIDTH = 50
let gameBoard = createGameBoard();

function createGameBoard(width, height){}
function randomizeGameBoard(gameBoard, width, height){}
function updateGameBoard(gameBoard, width, height){}
function runGameLoop(gameBoard, width, height){}

我应该这样声明函数吗?所有函数都采用完全相同的参数,或者我的函数不应该采用参数而是直接访问常用变量(全局变量)吗?

function createGameBoard() {do stuff with BOARD_WIDTH, BOARD_HEIGHT};
function randomizeGameBoard() {do stuff with gameBoard};

全局变量和传递变量都不是解决问题的方法(IMO)。如果仔细观察,宽度和高度实际上是 gameBoard 的属性......所有这些函数实际上可能是 class:

的方法
  class GameBoard {
    constructor(width, height) {
      this.width = width; this.height = height;
      //...
    }

    randomize() { /*...*/ }
    update() { /*...*/ }
  }

  const board = new GameBoard();

如果只有一块板,那么一个对象就够了:

  const board = {
    width: 50, height: 50,
    randomize() { /*...*/ },
    update() { /*...*/ },
  };