处理Array.prototype.slice.call(参数)的更简洁方法

bra*_*ipt 4 javascript node.js

我正在编写几个采用不同类型参数的函数。这样,只需执行以下操作即可:

var myFunc = function() {
    var args = Array.prototype.slice.call(arguments)
}
Run Code Online (Sandbox Code Playgroud)

...而不是尝试直接在函数声明的参数字段中处理所有不同的可能性,例如:

var myFunc = function(param1, param2, param3) {
    if (param3) {
        // etc.
    }
}
Run Code Online (Sandbox Code Playgroud)

Array.prototype.slice.call(arguments)不过,这会增加代码很多,并降低了可读性。我试图弄清楚是否有一种方法可以编写一个可以完成与相同功能Array.prototype.slice.call()但更简洁易读的辅助函数。我正在尝试类似的东西:

var parseArgs = function() {
    return Array.prototype.slice.call(arguments)
}

var foo = function() {
    console.log(parseArgs(arguments))
}

foo('one', 'two', 'three')
// [Arguments, ['one', 'two', 'three']]
Run Code Online (Sandbox Code Playgroud)

但这显然行不通。

Min*_*our 5

如果您不想Array.prototype.slice.call(args)每次都写,可以:

var slice = Function.call.bind(Array.prototype.slice);
Run Code Online (Sandbox Code Playgroud)

然后您可以在任何地方使用它,例如:

function fn(){
    var arr = slice(arguments);
}
Run Code Online (Sandbox Code Playgroud)