在TypeScript \ JavaScript中将数组分解为函数参数

时间:2019-04-10 14:16:10

标签: javascript typescript

我有一系列具有不同类型的对象实例。

var instances: any = [];
instances["Object1"] = new TypeA();
instances["ObjectB"] = new TypeB();

每种类型都有自己的方法,它们的名称和参数数量不同。 我想通过调用一个函数并将其传递给数据以标识要调用的方法和必要的参数值来调用此方法(我从客户端发送此数据)。

function CallMethod(data){
  let args = data.args;// it's array
  instances[data.objectId][data.methodId](??????); 
}

是否可以自动分解args数组以将其值作为不同的函数参数传递?

赞:

instances[data.objectId][data.methodId](args[0], args[1], ... args[n]); 

3 个答案:

答案 0 :(得分:0)

您可以使用...破坏函数参数的数组,这也称为散布。您可以详细了解here

instances[data.objectId][data.methodId](...args); 

所以您的功能将是:

function CallMethod(data){
    let args = data.args;// it's array
    instances[data.objectId][data.methodId](...args); 
}

答案 1 :(得分:0)

传播算子将在这里工作

function CallMethod(data){
  let args = data.args;
  instances[data.objectId][data.methodId](...args); 
}

答案 2 :(得分:-1)

使用Spread Syntax

function CallMethod(data){
  let args = data.args;// it's array
  instances[data.objectId][data.methodId](...args); 
}