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

Javascript 使用参数与全局变量——代码可读性/可维护性,javascript,ecmascript-6,maintainability,code-readability,Javascript,Ecmascript 6,Maintainability,Code Readability,我试图理解可读性与代码中重复我自己之间的最佳点 我正在用Javascript创建康威的生活游戏。我的函数反复使用许多相同的变量,就像这样 const BOARD_HEIGHT = 50 const BOARD_WIDTH = 50 let gameBoard = createGameBoard(); function createGameBoard(width, height){} function randomizeGameBoard(gameBoard, width, height){}

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

我正在用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){}
我应该像这样声明函数吗?如果所有函数都采用完全相同的参数,或者我的函数不采用参数,而是直接访问常用变量(全局变量)


无论是全局变量还是传递变量都不是解决问题的方法(IMO)。如果你仔细看,宽度和高度实际上是游戏板的属性。。。所有这些函数实际上都可以是一个类的方法:

  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() { /*...*/ },
  };
  const board = {
    width: 50, height: 50,
    randomize() { /*...*/ },
    update() { /*...*/ },
  };