Javascript 动态调用对象
我有一个目标:Javascript 动态调用对象,javascript,object,Javascript,Object,我有一个目标: const Foo = { bar: function(baz) { ... } } 我想做一些类似的事情: let x = 'Foo'; let y = 'cookies'; x.bar(y); 我尝试使用eval:eval(x+'.bar'+'('+y++')但它不工作 我无法使用Windows,这是一个无法在浏览器中运行的代码。欢迎提出任何建议。 const Foo={ 条:函数(baz){ 控制台日志(baz); } } 设x='Foo'; 设y=‘cookie
const Foo = {
bar: function(baz) { ... }
}
我想做一些类似的事情:
let x = 'Foo';
let y = 'cookies';
x.bar(y);
我尝试使用eval:eval(x+'.bar'+'('+y++')代码>但它不工作
我无法使用Windows,这是一个无法在浏览器中运行的代码。欢迎提出任何建议。
const Foo={
条:函数(baz){
控制台日志(baz);
}
}
设x='Foo';
设y=‘cookies’;
蒸发(x)巴(y)
您可以将Foo
包装到另一个对象中,并使用括号表示法调用该函数
const Foo={
bar:function(baz){console.log(baz);}
};
var对象={Foo},
x='Foo',
y=‘饼干’;
对象[x]。条(y)代码>如果我没有误解您的问题,如果您想将“y”作为字符串传递给eval函数,您应该替换它
const Foo = {
bar: function(baz) { console.log(baz);}
}
var x = 'Foo';
var y = 'cookie';
eval(x+'.bar("'+y+'")');
否则,cookie将被视为x中类似“Foo”的变量。Foo实际上是const Foo=require('Foo')
;你仍然可以把它包装成一个对象。明白了,我更新了代码。这看起来像你要找的吗?没问题,我从原始答案中删除了我的注释,因为我没有意识到'Foo'
必须是字符串。