我定义了一个函数,例如:
function call_api(url, callback, query = {}, body = {})
我期望有一种可以提供正文并跳过查询的语法:
call_api('/api/clients/new', function(x){console.log(x)}, body={1:2})
但我必须使用这个解决方法:
call_api('/api/clients/new', function(x){console.log(x)}, {}, {1:2})
即使我提供body=
,看起来它的出现是query
范围。我将 Babel 与 Webpack 结合使用。我在 Chrome 控制台和 Webpack 源代码中尝试了语法。
ES6支持这样的语法吗?它是如何工作的?
我建议您通过传递对象并对对象使用解构来解决此问题:
function callApi({url, callback, query = {}, body = {}})
然后将其称为:
callAPI({url: "/api/..", callback: (x => console.log(x)), body: {a:2}})
这将为您提供类似于您想要的语法。
与使用命名参数的其他语言(例如 C# 和 Python)不同,JavaScript 已考虑并拒绝命名参数。这是最近关于它的讨论 https://esdiscuss.org/topic/named-paramters来自语言邮件列表。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)