javascript - 将任意数量的参数传递给 JavaScript 函数

标签 javascript

我的 JavaScript 代码只是一个 Ajax 请求,它期望从后端返回 XML。后端可以将 execute_callback 作为 XML 标记之一返回,如下所示:

<?xml version="1.0" encoding="windows-1251"?>
<response>
    <execute_callback>
        <function_name>someFunction</function_name>
    </execute_callback>
</response>

只要您知道此 callback 期望的参数的确切数量,一切都很好。但是如果后端返回了怎么办

<?xml version="1.0" encoding="windows-1251"?>
<response>
    <execute_callback>
        <function_name>someFunction</function_name>
        <param>10.2</param>
        <param>some_text</param>
    </execute_callback>
    <execute_callback>
        <function_name>otherFunction</function_name>
        <param>{ x: 1, y: 2 }</param>
    </execute_callback>
</response>

我现在如何将参数 10.2 和“some_text”传递给 someFunction 并将 JSON { x: 1, y: 2 } 传递给 otherFunction

我知道一个丑陋的解决方案(使用函数的参数),但我正在寻找一个漂亮的解决方案。

在我忘记之前:不要为我解析 XML - 我可以自己完成 :) 我所需要的只是一些技巧,可以将任意数量的参数传递给 JavaScript 中的函数。如果你知道Python , 我想要:

def somefunc(x, y):
    print x, y
args = { 'x' : 1, 'y' : 2 }
somefunc(**args)

但在 JavaScript 中。

最佳答案

您可以将它们全部传递到您的函数中:

function someFunction(){
    for(i = 0; i < arguments.length; i++)
        alert(arguments[i]);
}

Javascript 函数有一个类似数组的参数对象,使用任意数量的参数调用 javascript 函数在语法上都是正确的。

someFunction(1, 2, 'test', ['test', 'array'], 5, 0);

是对该函数的有效调用。

关于javascript - 将任意数量的参数传递给 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6770339/

相关文章:

javascript - 在 JavaScript 中实现 monad

javascript - 动态创建的 JS 或 JQuery 中的独立 DOM 元素有哪些限制?

javascript - 在 Rails 3 应用程序中使用 jQuery 刷新 div 元素

javascript - jQuery:查找哪个文本框有插入符号/被选中

c# - Facebook 登录会永久重新加载页面

javascript - 点数组的插值

javascript - renderer2 selectRootElement() 不匹配任何元素

javascript - 如何为html div启用键盘事件?

javascript - 在正则表达式替换字符串中转义 $

javascript - Visual Studio 2019 中用于 Node js 应用程序的 Mocha 在引用或需要另一个文件时未在测试资源管理器中显示测试