使用变量调用 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)
我是面向对象 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)