gpt4 book ai didi

javascript - ES6 默认值——帮助理解概念

转载 作者:行者123 更新时间:2023-12-01 15:52:05 25 4
gpt4 key购买 nike

我正在努力发展我的 JS 技能并开始利用 ES6。

我知道您可以分配默认值,我正在模块中尝试这样做:

export var updateWidget = function (type = 'image', {
previewId = '.image-preview',
filepath = 'content/articles',
baseUrl = 'http://dummy.com',
thumbSize = '400x400'
}) {


var options = {
previewId: previewId,
type: type
},
fileElements = {
filepath: filepath,
thumbPath: null,
baseUrl: baseUrl,
thumbSize: thumbSize

},
}

如果我然后像这样启动对象:

new updateWidget('image'
).update('5059-081.png');

我收到与默认对象相关的 cannot read property undefined。如果我这样做:

new updateWidget('image', {}
).update('5059-081.png');

有效。

我需要将一个空白对象传递给模块才能使其正常工作,这似乎很奇怪,我本来希望完全不考虑它,默认值仍然有效。

我希望更新我用来充分利用 ES6 的当前模块模式,但一次一个步骤。

那么,我怎样才能设置默认值并且只需要选择性地发送一个对象呢?最佳做法是什么?

谢谢

最佳答案

第二个参数需要一个将被解构的对象。

当它被解构时,每个产生的变量都会被赋予一个默认值,以防对象没有匹配的属性。

如果没有传递参数,则没有给出应解构的默认值。

您可以将空对象设置为默认值。

export var updateWidget = function (type = 'image', {
previewId = '.image-preview',
filepath = 'content/articles',
baseUrl = 'http://dummy.com',
thumbSize = '400x400'
} = {})

(注意最后一行的变化)

关于javascript - ES6 默认值——帮助理解概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61268411/

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