传递参数

时间:2016-07-22 04:23:12

标签: javascript ecmascript-6

由于我的js类的性质,我有一个共同的参数拆分器。我无法弄清楚如何applycall这个功能区并传递arguments对象而不实际将其作为函数的参数传递。

function splitArgs(){
   return {
       text : arguments[0],
       class : arguments[1] || ""  
   }
}

function doSomething(){
    var args = splitArgs.call(this, arguments);
    if(args.class)
      // do stuff
}

我试过了

splitArgs.call(this, arguments);

splitArgs.call(this, ...arguments);

splitArgs.apply(this, arguments);

splitArgs.apply(this, ...arguments);

splitArgs(...arguments);

1 个答案:

答案 0 :(得分:0)

我知道你说你试过splitArgs.apply(this, arguments) ......但它似乎对我有用:

function splitArgs() {
   return {
       text: arguments[0],
       class: arguments[1] || ""  
   };
}

function doSomething() {
    var args = splitArgs.apply(this, arguments);
    console.log(args);
}

doSomething('foo', 'bar');

// Output:
// { text: 'foo', class: 'bar' }

输出:

{ text: 'foo', class: 'bar' }

使用ES6,这对我也有用:

var args = splitArgs(...arguments);