首页 > 解决方案 > 为什么我不能将变量名传递给 JS 函数?

问题描述

我正在开发井字游戏。尝试传入要选择的封闭变量的名称和要分配给它的值。但是,这不起作用...如果我在不带引号的情况下传入 s1 会产生错误,因为 s1 不是全局变量,如果我用引号将其传入,它会运行,但似乎创建了一个名为"square" 并且根本不使用 square 参数的值。

所以,我可以想象通过遍历所有变量并将每个变量与我的参数字符串进行比较来做到这一点,但是有更好的方法吗?

const gameBoard = ((squareStatus) => {
  const squares = document.querySelectorAll('.square');
  for (let i = 0; i < 9; i++) {
    console.log(squareStatus[i])
    //squares[i].innerHTML = squareStatus[i];
  }
});

const gameBrain = function(square, mark) {
  const s1 = "x";
  const s2 = "x";
  const s3 = "o";
  const s4 = "x";
  const s5 = "o";
  const s6 = "o";
  const s7 = "o";
  const s8 = "x";
  const s9 = "x";
  square = mark;
  gameBoard([s1, s2, s3, s4, s5, s6, s7, s8, s9]);
}

gameBrain('s1', 'z');

标签: javascriptfunctionclosures

解决方案


推荐阅读