javascript - 更简洁的处理方式 Array.prototype.slice.call(arguments)

标签 javascript node.js

我正在编写几个采用不同类型参数的函数。因此,这样做要简单得多:

var myFunc = function() {
    var args = Array.prototype.slice.call(arguments)
}

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

var myFunc = function(param1, param2, param3) {
    if (param3) {
        // etc.
    }
}

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']]

但显然那是行不通的。

最佳答案

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

var slice = Function.call.bind(Array.prototype.slice);

然后你可以在任何地方使用它,比如:

function fn(){
    var arr = slice(arguments);
}

关于javascript - 更简洁的处理方式 Array.prototype.slice.call(arguments),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34797268/

相关文章:

javascript - 带 Promises 的递归意味着注册的回调被调用多次

javascript - 如何使用 Node.js 最有效地解析网页

javascript - 在 Javascript for 循环中调用 HTML 类很困难

javascript - 根据值突出显示 HTML 表格单元格 (jQuery)

node.js - 删除了 Firebase 中的本地代码库。我如何检索代码?

node.js - 在 Windows 中构建 Node.js 模块

node.js - Express Route 在达到一定数量的 Angularjs Post 后停止工作

node.js - Socket.io 与 NGINX 和 http 2

javascript - 具有主从关系的数据表ajax xml显示

javascript - 下面的脚本是做什么的