javascript - 当我只有一个值列表时,如何调用采用多个参数的方法?

标签 javascript json

我正在编写一种将方法调用存储到对象中的方法:

var action = {'method':'foo', 'params': [1,'bob',45]}

我有我的方法:

function foo(order, name, size);

function bar(input);

function baz(name, length, time, debug);

等等

当给定一个 Action 时,我希望自动调用与之关联的函数:

var fn = window[action.method]
if(typeof fn === 'function')
{
    fn(//blah)
}

问题是, Action 对象有一个参数列表,但我的函数有多个参数。我该如何实现?

最佳答案

使用.apply:

fn.apply( this, action.params );

这会调用 fn,但使用第一个参数来设置 fnthis 值,并使用第二个参数的各个成员(action.params 数组)将调用的参数填充为单独的参数。


我会注意到,因为你正在做:

window[action.method]

您实际上将方法名称作为字符串:

{'method':'foo',...}

关于javascript - 当我只有一个值列表时,如何调用采用多个参数的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8513705/

相关文章:

javascript - React Suspend 后的组件未加载?

Android ListView 添加了两次项目

json - Angular 2 [ typescript]使用json模型从子组件UI更新父组件UI的模型值

Javascript - 从数组创建深层对象

javascript - 如何在特定时间禁用点击事件处理程序?

Javascript Three.js 固定坐标点相机

java - Jackson JSON - 序列化流

javascript - 如何链接两个 JavaScript 对象?

java - 包含 Gson 的顶级元素

javascript - 休息 API : how to pass the JSONresponse to Javascript?