【发布时间】:2023-04-02 23:28:01
【问题描述】:
我在阅读文章时发现了一些代码。我无法理解。但是当我测试它时,它起作用了!谁能告诉我参数是什么意思?是解构吗?
function test ({ a = '1', b = '2', c = '3' } ={}) {
console.log(a, b, c);
};
test(); //> "1" "2" "3"
【问题讨论】:
标签: javascript ecmascript-6 destructuring
我在阅读文章时发现了一些代码。我无法理解。但是当我测试它时,它起作用了!谁能告诉我参数是什么意思?是解构吗?
function test ({ a = '1', b = '2', c = '3' } ={}) {
console.log(a, b, c);
};
test(); //> "1" "2" "3"
【问题讨论】:
标签: javascript ecmascript-6 destructuring
这里设置了属性的默认值:{ a = '1', b = '2', c = '3' }。
只要没有值传递给test() - 使用默认值{}。它没有a、b、c 这些属性 - 所以结果变量获得默认值。
如果您传递一些具有现有已知属性的对象 - 将使用它们的值:
function test ({ a = '1', b = '2', c = '3' } ={}) {
console.log(a, b, c);
};
test(); //> "1" "2" "3"
test({a: 10}); //> "10" "2" "3"
您可以在MDN 上阅读有关解构的更多信息。
【讨论】:
是的,我现在明白了。
1, { a = '1', b = '2', c = '3' } : 对象 {a,b,c} 具有默认值 '1','2','3'。
2, {}:这是默认参数。
3, { a = '1', b = '2', c = '3' }={} :它将参数解构为对象 {a,b,c}。然后获取变量 a,b,c 的值
感谢法林斯基。
【讨论】: