对象在nodejs的构造函数中被销毁,赋值给成员variables不起作用

我正在尝试ES6对象解构内部构造函数希望将值赋给成员variables。 它不工作。 它显示未定义时,我正在打印成员函数内的值。 它的打印正确,如果我在构造函数内打印。是否有效?

class Environment { constructor(env) { const { name, version } = env console.log(name) } printName() { console.log(this.name) } } var obj = { "name": "inst1", "version": "12.2.7" }; var envObj = new Environment(obj); envObj.printName(); 

您可以使用别名将解构的属性直接分配给对象props,并将括号内的expression式包装起来:

 class Environment { constructor(env) { ({ name: this.name, version: this.version } = env); } printName() { console.log(this.name) } } var obj = { "name": "inst1", "version": "12.2.7" }; var envObj = new Environment(obj); envObj.printName();