由于我的js类的性质,我有一个共同的参数拆分器。我无法弄清楚如何apply
或call
这个功能区并传递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);
答案 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);