代码之家  ›  专栏  ›  技术社区  ›  whiterook6

如何对具有重用键的对象使用嵌套销毁?

  •  0
  • whiterook6  · 技术社区  · 5 年前

    我从我的网站上收到一条消息:

    var message = {
      spell: {
        symbol: 'my-spell'
      },
      target: {
        symbol: 'my-target'
      }
    };
    

    我正在尝试学习破坏,因此我编写了以下代码:

    let {
      spell: {
        spell_symbol: symbol
      },
      target: {
        target_symbol: symbol = null
      }
    } = message;
    console.log('spell symbol: ' + spell_symbol);
    console.log('target symbol: ' + target_symbol);
    

    这给了我一个错误:

    SyntaxError: Identifier 'symbol' has already been declared
    

    我把语法写错了吗,或者你不能重复使用这些键吗? symbol 在嵌套对象中?我怎么提取 target.symbol message ?

    1 回复  |  直到 5 年前
        1
  •  2
  •   Bergi    5 年前

    您混淆了属性名和目标表达式的顺序,它应该是

    const {
      spell: {
        symbol: spell_symbol
      },
      target: {
        symbol: target_symbol = null
      }
    } = message;
    console.log('spell symbol: ' + spell_symbol);
    console.log('target symbol: ' + target_symbol);