Jen*_*Mok 8 javascript ecmascript-6
这是es6中参数的默认值吗?
function list({ skip = 0, limit = 50 } = {}) {
}
Run Code Online (Sandbox Code Playgroud)
上面的代码是做什么的?
如果这是list(skip=0, limit=50)我能理解但现在我很困惑.
基于函数签名,我们可以说我们期待一个参数,它应该是一个对象.
function list(myObject) {
}
Run Code Online (Sandbox Code Playgroud)
如果没有传递(或undefined传递)参数,我们将默认值设置为空对象,{}.
function list(myObject = {}) {
}
Run Code Online (Sandbox Code Playgroud)
现在,无论如果我们传递一个对象,没有参数,或者undefined,myObject将是一个对象.
// myObject will be {} for all 3 calls
list({})
list()
list(undefined);
Run Code Online (Sandbox Code Playgroud)
接下来,我们myObject通过从中提取skip并limit对其进行解构:
function list(myObject = {}) {
let { skip, limit } = myObject;
}
Run Code Online (Sandbox Code Playgroud)
此外,我们可以直接执行此解构而不是myObject参数:
function list({ skip, limit } = {}) {
}
Run Code Online (Sandbox Code Playgroud)
最后,如果我们最终得到的值存在skip或limit不存在,我们给它们默认值:
function list({ skip = 0, limit = 50 } = {}) {
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2949 次 |
| 最近记录: |