簡體   English   中英

JS分解為對象

[英]JS destruct into object

我正在嘗試在節點js v8中執行此操作

管理變量如下所示:

let management = {
    ip: '1.1.1.1',
    port: '443',
    username: 'admin',
    password: 'admin'   
}

constructor ({management,system,network,...other}) {

   this.management =  {
      ip ,
      port = 443,
      username = 'admin',
      password = 'admin',
    } = { ...management };
}

知道我為什么收到消息

ip:ip,^

ReferenceError:未定義ip

評估不應該從右到左,這樣在分配工作之前會破壞管理嗎? 關於如何在沒有更多代碼的情況下以清晰的方式執行此操作的任何想法?

之所以會出現錯誤,是因為您將結構分解為從未在任何地方聲明的變量,並且在嚴格模式下導致了異常(而不是創建全局變量)。

順便說一句,您不能同時解構和構造對象文字 無論如何,您的代碼只會將{ ...management }分配給this.management

您可能正在尋找

constructor ({management, system, network, ...other}) {
    const {ip, port = 443, username = 'admin', password = 'admin'} = management;
    this.management = {ip, port, username, password};
}

要么

constructor ({management: {ip, port = 443, username = 'admin', password = 'admin'}, system, network, ...other}) {
    this.management = {ip, port, username, password};
}

要么

constructor ({management, system, network, ...other}) {
    this.management = (({ip, port = 443, username = 'admin', password = 'admin'} => ({ip, port, username, password}))(management);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM