为什么这个对象解构不起作用?

7
语法看起来就像从MDN上复制粘贴过来的,所以我不明白为什么这个解构对象不起作用。变量返回未定义,为什么?
  let obj={age: "3", name: "spike"};
  let {a,b}=obj;//returns a and b as undefined, why?

4
可能是ES6/ES2015对象解构和更改目标变量的重复问题。 - Mark
3个回答

10
你需要使用nameage作为从对象解构出来的变量,如下所示:

let obj={age: "3", name: "spike"};
let {age, name}=obj;

console.log(age);
console.log(name);

或者,您可以使用以下语法为解构变量分配新名称:

let obj={age: "3", name: "spike"};
let {age: a, name: b}=obj;

console.log(a);
console.log(b);


1
你需要使用与 'obj' 对象中的 'age' 和 'name' 相同的键进行解构。但同时,你可以像下面这样为它们分配自己的别名,比如 'a' 和 'b'。
let obj={age: "3", name: "spike"};
let {age:a, name:b}=obj;

console.log(a); //prints "3"
console.log(b); //prints "spike"

0

你需要传递与对象中相同的变量名,而在你的情况下它将是

let obj={age: "3", name: "spike"};
let {age,name}=obj;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接