在JS中解构时,嵌套的部分对象默认为默认值?

斯特韦里诺

考虑以下代码:

function foo({
    item1 = 'a',
    item2 = 'b',
    item3 = {x: 1, y: 2}
} = {}) {
    console.log(item1,item2,item3.x,item3.y)
}

如果调用,foo()您将获得一个对象,其中包含item1,item2和item3的默认设置。您也可以拨打foo({item1: 'm', item2: 'n'})和您的结果将包括默认item3{x: 1, y: 2}但是,如果您致电:

foo({item1: 'm', item2: 'n', item3: {x: 99}})

您将在函数范围内获得undefined帮助item3.yfoo

所以:

item3在这种情况下,是否有办法获取嵌套属性的个别默认值

一定的表现

这不可能。

在参数中,您尝试提取3个变量:一个item1对象,一个item2对象和一个item3对象。

最重要的是,你还试图突变item3情况下,它不包含某些属性对象。

但是,所有破坏性工作都可以将对象的属性提取为变量-它不能使任何现有对象发生突变(没有一些不该使用的非常丑陋的古怪代码)。

如果你确定提取单个属性item3进入新的变数,这将是非常可能的,虽然:

function foo({
  item1 = 'a',
  item2 = 'b',
  item3: {
    x = 1,
    y = 2
  } = {}
} = {}) {
  console.log(item1, item2, x, y)
}


foo({item1: 'm', item2: 'n'})
foo({item1: 'm', item2: 'n', item3: {x: 99}})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用打字稿和默认值解构嵌套参数

来自分类Dev

具有其自身默认值的对象解构分配

来自分类Dev

在对象解构中使用默认值,同时保留所有未默认值

来自分类Dev

使用Typescript中的默认值解构属性

来自分类Dev

如何从字符串中解构默认值

来自分类Dev

使用嵌套对象和默认值进行销毁

来自分类Dev

嵌套字典到具有默认值的对象

来自分类Dev

深度嵌套对象中未定义变量的默认值

来自分类Dev

ES6解构对象分配功能参数默认值

来自分类Dev

在Ruby中,如何为嵌套哈希设置默认值?

来自分类Dev

在Clojure中的稀疏嵌套地图中设置默认值

来自分类Dev

装饰对象时,变量重置为默认值

来自分类Dev

按下对象时的Android背景默认值

来自分类Dev

如何在ecmascript 6中使用默认值进行解构

来自分类Dev

在Red-Gate数据比较中设置对象映射时设置默认值

来自分类Dev

值为null时在查询中设置默认值

来自分类Dev

参数中的默认值

来自分类Dev

函数中的默认值

来自分类Dev

方法中的默认值

来自分类Dev

Java中“对象”的默认值是什么?

来自分类Dev

返回在javascript对象中找不到的键的默认值

来自分类Dev

无法在perl中返回对象属性的默认值

来自分类Dev

对象属性中的默认值(如果不存在)

来自分类Dev

将对象保存到用户默认值中

来自分类Dev

Swift-嵌套枚举默认值

来自分类Dev

保留嵌套命名参数的默认值

来自分类Dev

嵌套while和for循环的默认值

来自分类Dev

如何使用Knockout JS Array Map根据输入条件使选择选项绑定默认为默认值?

来自分类Dev

在JS中调用函数时省略/跳过具有默认值的参数