参数是否可以用于创建新的对象键和作为同一函数中的变量?

Joh*_*rry 5 javascript variables jquery object

这显然是一种改变按钮背景颜色的完全低效的方法,但我想知道为什么这不起作用:

<button id="blueButton">Button</button>
Run Code Online (Sandbox Code Playgroud)
var data = {};

function changeColor(e){
  data.e = "blue";
  $('#' + e).css('background-color', data.e);
}

changeColor(blueButton);
Run Code Online (Sandbox Code Playgroud)

如果变量能够在字符串中使用(例如${variable}),为什么它不能在上面的场景中使用?

Ror*_*san 5

要通过变量设置对象的键,您需要使用括号表示法:请记住,javascript仅允许stringSymbol作为Object键.如果你想使用其他类型来键,你需要看看Map

var data = {};

function changeColor(e){
  data[e] = "blue";
  $('#' + e).css('background-color', data[e]);
}

changeColor(blueButton);
Run Code Online (Sandbox Code Playgroud)