【发布时间】:2016-08-31 10:30:32
【问题描述】:
我有一个对象:
var obj = {
foo: 'foo',
bar: 'bar'
};
我有一个函数:
var f = function(bar, foo) {
// Do something with bar and foo
};
有没有一种方法可以使用对象动态调用函数,使 obj['foo'] 作为 'foo' 参数传递,而 obj['bar'] 作为 'bar' 参数传递?请注意,我可能不知道键和值的实际名称或函数参数名称,提供的只是一个示例,所以f.call(this, obj['bar'], obj['foo']); 不会这样做。
【问题讨论】:
-
你需要检查函数的参数名称,以正确的顺序创建一个参数数组,然后
f.apply(null, args)…也许有人可以从这里提供一个实现… -
您想根据函数参数名称传递对象属性名称吗?这不是一个好主意。
-
无法理解你想要什么。详细说明
-
@ajay OP 有一个对象,其键对应于函数的参数名称。 OP 想要调用函数,将对象中的适当值传递给函数的适当参数。
标签: javascript