将数组转换为函数参数列表[重复]

2020/10/10 10:21 · javascript ·  · 0评论

是否可以将JavaScript中的数组转换为函数参数序列?例:

run({ "render": [ 10, 20, 200, 200 ] });

function run(calls) {
  var app = .... // app is retrieved from storage
  for (func in calls) {
    // What should happen in the next line?
    var args = ....(calls[func]);
    app[func](args);  // This is equivalent to app.render(10, 20, 200, 200);
  }
}

是。在当前版本的JS中,您可以使用:

app[func]( ...args );

ES5及更高版本的用户将需要使用以下.apply()方法:

app[func].apply( this, args );

在MDN上阅读以下方法:

来自类似主题的另一篇文章中的一个非常易读的示例:

var args = [ 'p0', 'p1', 'p2' ];

function call_me (param0, param1, param2 ) {
    // ...
}

// Calling the function using the array with apply()
call_me.apply(this, args);

是我个人喜欢它的可读性的原始帖子的链接

app[func].apply(this, args);

您可能想看看堆栈溢出上发布类似问题它使用该.apply()方法来完成此任务。

@bryc-是的,您可以这样做:

Element.prototype.setAttribute.apply(document.body,["foo","bar"])

相比之下,这似乎需要大量的工作和困惑:

document.body.setAttribute("foo","bar")
本文地址:http://javascript.askforanswer.com/jiangshuzuzhuanhuanweihanshucanshuliebiaozhongfu.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!