【问题标题】:Call function with array of parameters使用参数数组调用函数
【发布时间】:2011-11-24 09:02:57
【问题描述】:

有没有办法在不改变功能的情况下做到这一点?

function foo(bar1, bar2, bar3)
{
    return bar1 + bar2 + bar3;
}
var array = [1, 2, 3];
console.log(foo(array)); //6

【问题讨论】:

  • foo(array[0], array[1], array[2]);?

标签: javascript arrays function


【解决方案1】:
console.log(foo.apply(null, array));

【讨论】:

  • 我认为将this 值设置为函数本身没有多大意义。尽管它没有任何区别,但我会说将其设置为例如null 更具语义化。
  • @pimvdb 在函数中这通常指向窗口(显然在浏览器中),所以我想调用foo.apply(window, array) 应该是自然的选择。
  • @Lolo 说得有道理:) 我又改了。
  • @Lolo:如果您将null 作为this 值传递,那么它将自动设置为window。但由于this 的值无关紧要,null 会更有意义——但毕竟这根本不重要。
猜你喜欢
  • 1970-01-01
  • 2022-11-28
  • 2017-01-24
  • 1970-01-01
  • 1970-01-01
  • 2015-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多