是否可以在NodeJS中将参数拆分为值?

时间:2013-12-02 17:48:57

标签: javascript node.js

是否可以做这样的事情?

function one(){
    two(arguments)
}

function two(a, b){
    console.log(a);
    console.log(b);
}

one('a', 'b');

2 个答案:

答案 0 :(得分:6)

是的,请使用apply()

function one(){
    two.apply(null, [].slice.call(arguments))
}

一些旧的引擎坚持收到一个数组作为apply()的第二个参数。不幸的是,arguments类似数组的对象。也就是说,它不是真正的数组,但除lengthcallee属性外,它还有caller属性和数字索引。因此,我们调用Array.slice()以便将普通数组传递给apply()

那就是说,V8(由node.js使用)应该没有这样的翻译:

function one(){
    two.apply(null, arguments)
}

那是我的错,我错过了标签。

答案 1 :(得分:3)

jsFiddle Demo

您正在寻找apply。 apply语法允许您将值数组作为参数传递给函数。

function one(){
 two.apply(this, arguments);
}

function two(a, b){
 console.log(a);
 console.log(b);
}

one('a', 'b');