如何将parameter passing给函数?

我在nodejs中有以下function,res.execSync接受多个参数,详情如下: https : //github.com/xdenser/node-firebird-libfbclient

函数execSync(param1,param2,…,paramN);
param1,param2,…,paramN – 准备好的语句的参数的顺序与SQL中相同,并具有适当的types。

function test(sql, callback) { var args = Array.prototype.slice.call(arguments).splice(2); res.execSync(args); } test('test', function() {}, "param1", "param2", "param3"); 

错误:期望string作为参数#1。

我如何解决这个问题?

你不是这个意思:

 function test(sql, callback) { var args = Array.prototype.slice.call(arguments, 2); res.execSync.apply(res, args); } test('test', function() {}, "param1", "param2", "param3"); 

args是一个数组。 您需要使用apply方法将其解包为单独的参数。

 res.execSync.apply(res, args); 

它就像call但接收通常参数列表的数组intead。


顺便说一句,你可以传递范围参数来切片。 这意味着有一个更短的方式来写你的第一行:

 var args = Array.prototype.slice.call(arguments, 2);