gpt4 book ai didi

javascript - 在 JavaScript 中返回被破坏的参数

转载 作者:行者123 更新时间:2023-11-28 17:49:32 26 4
gpt4 key购买 nike

场景:我有一个要保存的对象,在保存之前我想要为该对象提供一个 ID,并在保存后返回该对象及其 ID。

假设我有以下基本功能:

let create = (someObj) => {
if (!someObj.id)
someObject.id = 'myNewIdForThisObject';

... // persisting happens here
return someObj;
}

现在工作得很好,但是有些人调用这个函数不提供对象,所以我想像这样阻止这种情况:

let mandatory = () {
throw new Error('Missing argument');
}

let create = (someObj = mandatory()) => {
if (!someObj.id)
someObject.id = 'myNewIdForThisObject';

... // persisting happens here
return someObj;
}

好吧,这很好,但现在他们确实提供了一个没有名字的对象(我知道,悲伤的 Pandas )。因此,我也可以通过破坏参数来强制指定 name 属性:

let mandatory = () {
throw new Error('Missing argument');
}

let create = ({name = mandatory()} = mandatory()) => {
...
}

这也意味着我可以在对象中拥有 ID,如下所示:

let create = ({id = 'myNewIdForThisObject', name = mandatory()} = mandatory()) => {
... //persistence happens here
// here I would like to return the parameter with it's ID
// without rebuilding the object
}

我想知道的是如何从函数返回被破坏的参数而不重建函数内的对象。

我不能简单地返回arguments[0],因为使用了默认值,它将返回分配的内容,仅返回传入的内容。

有没有办法命名被破坏的对象以简单地返回它?

最佳答案

不,我认为不可能对参数使用解构给参数命名。以下内容不适合您吗?

let create = (someObj = mandatory()) => {
const {id = 'myNewIdForThisObject', name = mandatory()} = someObj;
someObj.id = id;
return someObj;
}

关于javascript - 在 JavaScript 中返回被破坏的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45855576/

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