[英]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.