使用变量调用 javascript class 对象

Call a javascript class object with variable

我是面向对象 Javascript 的新手,我创建了一个名为 Foo 的对象(基于 class)和一个名为按钮的对象。要调用按钮,我可以键入

console.log('foo log: ',foo.buttons)
//foo log:  testButton1

我想通过用名为 myVar 的变量替换 foo 来替换调用 foo.buttons。它一定很简单,但我能看到的 none 解决方案似乎适用于我的情况。我认为可能存在范围问题,但不明白它是什么。

我已经尝试过的

class TestClass {
  constructor(
    button)
    {this.button = button}
}

const myVar = 'foo'
const foo = new TestClass ('testButton1')

console.log('foo log: ', foo.button)
//foo log:  testButton1

console.log('myVar: ', myVar)
//foo




console.log('Attempt1: ', [myVar].button)
//Attempt1:  undefined

//console.log('Attempt2: ', [myVar]button)
//     failed to compile

console.log('Attempt3: ', myVar.button)
//Attempt3:  undefined

console.log('Attempt4: ', (myVar).button)
//Attempt4:  undefined

console.log('this:', this)

您可以使用 eval,但这可能很危险。

class TestClass {
  constructor(
    button)
    {this.button = button}
}

const myVar = 'foo'
const foo = new TestClass ('testButton1')

console.log(eval(myVar).button)