Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态调用对象_Javascript_Object - Fatal编程技术网

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'
必须是字符串。