【问题标题】:Call a function with 'arguments' as separate arguments使用“参数”作为单独的参数调用函数
【发布时间】:2011-03-16 14:32:53
【问题描述】:

我正在尝试将函数的arguments 变量作为单独的 参数传递给另一个函数。我试过这个:

function call_function(func) {
    func(arguments);
}

但是,call_function(someFunction, 123, 456) 实际上调用了someFunction([someFunction, 123, 456])。不管函数本身是否被传递,它都是作为Arguments 对象/数组之类的东西传递的,但在这种情况下我宁愿将函数称为someFunction(123, 456)

我还尝试过:func(Array.prototype.slice.call(arguments, 1)) 删除函数(第一个参数),但显然这实际上返回了一个数组,即它将数组作为第一个参数传递给函数。

我如何编码call_function,以便像call_function(someFunction, 123, 456) 这样的调用导致someFunction(123, 456) 被调用?

【问题讨论】:

  • 您要解决的原始问题是什么?为什么需要以这种方式调用函数?
  • @Andrey:实际上更多的是理论上的。
  • 我认为 TJHeuvel 的答案正是您想要的
  • @Andrey:你说的完全正确,我只是休息了一段时间。

标签: javascript function arguments


【解决方案1】:

您可以使用apply 函数调用以数组作为参数的函数。 https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 2018-08-15
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    相关资源
    最近更新 更多