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

时间:2019-06-20 22:34:27

标签: javascript ecmascript-6 maintainability code-readability

我试图理解可读性与在代码中重复自己之间的最佳结合。

我正在用Javascript创建Conway的生活游戏。我的函数一遍又一遍地使用许多相同的变量,就像这样……

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};

1 个答案:

答案 0 :(得分:2)

全局变量和传递变量都不是到达此处(IMO)的方法。如果仔细观察,宽度和高度实际上是gameBoard的属性...,所有这些功能实际上都可以是类的方法:

  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() { /*...*/ },
  };