gpt4 book ai didi

javascript - 将 "x"参数数量设置为函数属性

转载 作者:行者123 更新时间:2023-11-28 13:15:28 25 4
gpt4 key购买 nike

我正在尝试创建一个通用函数,您可以在其中传递具有随机函数属性的对象。有了这个,您应该能够设置一个属性,说明函数每个参数的键和值。

通用函数应该使用所有参数调用这个“随机”函数。

但是我不太确定该怎么做?

// Keep in mind its created for demonstration purposes

var functionOne = function(id)
{
return id;
}
var functionTwo = function(id,name)
{
return id + ' 'name;
}

var functionThree = funciton(id,name,age)
{
return id + ' '+name+' '+age;
}
var obj = [
{
callback: functionOne,
callbackParameters: [{key: 'id', value: 1}]

},
{
callback: functionTwo,
callbackParameters: [{key: 'id', value: 1}, {key: 'name', value:'Marc'}]

},

{
callback: functionThree,
callbackParameters: [{key: 'id', value: 1}, {key: 'name', value: 'Marc'}, {key: 'age', value: 45}]

}
]

obj.forEach(function(x){
//How do i call it with the correct keys? :(
})

Fiddle

最佳答案

您可以在 JS 中对函数调用 apply() 并向其中传递参数数组。因此,假设您的回调参数始终处于正确的顺序,您可以使用以下内容。

obj.forEach(function(x){
var parameters = x.callbackParameters.map(function(p) { return p.value; });
console.log(x.callback.apply(this, parameters));
})

更新了 fiddle https://jsfiddle.net/y6oh1078/1/

编辑:进一步阅读

如果您对在 JS 中操作函数的更多方法感兴趣,那么以下有关柯里化(Currying)的文章值得一读 - https://www.sitepoint.com/currying-in-functional-javascript/

关于javascript - 将 "x"参数数量设置为函数属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38784836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com