Javascript 在函数调用中跳过参数

标签 javascript

这里是 JavaScript 初学者。

假设我有一个带有 3 个参数的 javascript 函数:

function f(arg1, arg2, arg3) { // do stuff }

我知道我可以调用 f(value1, value2);在这种情况下,函数范围内的 arg1 将为 value1,arg2 将为 value2,而 arg3 将为 null。

一切正常。但是,如果我想调用仅向 arg1arg3 赋值的函数,我需要执行如下操作:f(value1, null, value2);

有没有一种方法可以以更像 C# 的方式指定哪些参数具有哪些值(无需将未给定参数指定为 null)?类似这样的事情:为了仅使用 arg1arg3 的值调用 f,我会写 f(value1, arg3 = value2);

有什么想法吗? 干杯!

最佳答案

有一种方法我见过:

例如

function person(name,surname,age)
{
...
}

person('Xavier',null,30);

你可以这样做:

function person(paramObj)
{
   var name = paramObj.name;
   var surname = paramObj.surname;
   var age = paramObj.age;
}

这样调用:

person({name:'Xavier',age:30});

我认为这是最接近于在 C# 中执行此操作的方法,请记住 JS 不是编译的,因此您无法预测函数的参数。

编辑:

为了获得更好的语法,您可以使用 ES6 对象解构,如下所示:

function person({name, surname, age})
{
   ...
}

https://javascript.info/destructuring-assignment

关于Javascript 在函数调用中跳过参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25642690/

相关文章:

javascript - Chrome 浏览器上的自动文件下载限制为 10 个文件

Javascript/jQuery 子串高亮问题

javascript - 需要仅提取 JSON 模式中存在的键

javascript - 它不验证我的提交按钮点击使用 javascript

javascript - 可以在 Text 节点上执行哪些 DOM 操作?

javascript - AngularJS 和 i18next

javascript - 如何使用Appium更改真实设备上的时间?

javascript - 使用 eCharts 重复动画

javascript - jQuery 更改链接中的文本

javascript - 如何使用 element.all 在 Protractor 端到端测试中从 javascript 的 Promise 返回值