gpt4 book ai didi

javascript - 为什么以下函数在执行 `greet({ name = ' Rauno' } = {} )` instead of ` greet(name = 'Rauno')`?

转载 作者:行者123 更新时间:2023-12-01 15:39:46 24 4
gpt4 key购买 nike

function greet({ name = 'Rauno' } = {}) {
console.log(`Hi ${name}!`);
}

greet() // Hi Rauno!
greet({ name: 'Larry' }) // Hi Larry!
虽然,我了解这里的基本功能...我不明白需要做什么 greet({ name = 'Rauno' } = {})而不是 greet(name = 'Rauno') .他们不是达到同样的结果吗?所以为什么?

最佳答案

最简洁的答案是不。
假设你有你的函数并像下面这样调用它:

function greet({ name = 'Rauno' }) {
console.log(`Hi ${name}!`);
}

greet(); // throws reference error
您没有传递任何内容(隐式 undefined )作为第一个参数。因此 javascript 在尝试访问 undefined.name 时失败并引发引用错误。因为 undefined不是对象,也没有名称属性。所以你应该为参数设置一个默认值来覆盖 undefined案例。然后 javascript 尝试检索 {}.name ,它是 undefined并检索名称的默认值(在您的情况下为 Rauno)。

关于javascript - 为什么以下函数在执行 `greet({ name = ' Rauno' } = {} )` instead of ` greet(name = 'Rauno')`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63147331/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com