这是es6中参数的默认值吗?
function list({ skip = 0,limit = 50 } = {}) { }
上面的代码做了什么?
如果是列表(skip = 0,limit = 50)我可以理解,但现在我很困惑.
解决方法
该功能将
destructuring和
default parameters混合在一起.
基于函数签名,我们可以说我们期望一个参数,它应该是一个对象.
function list(myObject) { }
如果没有传递参数(或传递未定义),我们将默认值设置为空对象{}.
function list(myObject = {}) { }
现在,无论我们传递一个对象,没有参数,还是未定义,myObject都将成为一个对象.
// myObject will be {} for all 3 calls list({}) list() list(undefined);
接下来,我们通过从中提取skip和limit来对myObject进行解构:
function list(myObject = {}) { let { skip,limit } = myObject; }
此外,我们可以直接执行此解构而不是myObject参数:
function list({ skip,limit } = {}) { }
最后,如果我们最终得到的值不存在跳过或限制,我们给它们默认值:
function list({ skip = 0,limit = 50 } = {}) { }