如何将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);