gpt4 book ai didi

javascript - ES6 中的命名对象参数 - 如何检查它们是否已提供?

转载 作者:行者123 更新时间:2023-11-29 10:04:51 25 4
gpt4 key购买 nike

我有一些 ES6 代码,我在其中传递定义的选项对象的一些命名参数,如下所示...

    configureMapManager({ mapLocation, configuredWithDataCallback, locationHasChanged })
{
if (mapLocation) console.log(mapLocation)
}

这是一个人为的案例,下面的调用可以正常工作......

configureMapManager({ mapLocation: "BS1 3TQ" })
configureMapManager({})

但这会爆炸...

configureMapManager()

...因为我无法检查传入的对象是否已定义(这不是因为我调用了没有任何参数的方法)。我怎样才能做到这一点而不必像这样重写它(这很糟糕,因为那样你就失去了对象内允许参数的可见性)...

    configureMapManager(options)
{
if (options && options.mapLocation) console.log(mapLocation)
}

最佳答案

使用默认参数:

function configureMapManager({ mapLocation } = {})
{
console.log(mapLocation);
}

当不带任何参数调用该函数时,mapLocation 将是未定义的:

configureMapManager(); // prints: undefined
configureMapManager({ mapLocation: 'data' }); // prints: data

关于javascript - ES6 中的命名对象参数 - 如何检查它们是否已提供?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45586336/

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