首页 > 解决方案 > Javascript 对象 - 为什么它的行为如此 + 对象名称周围的大括号

问题描述

我目前在这里学习 JS并有以下代码,但我不明白为什么它返回 name 属性。

let {name} = {name: "Faraji", age: 23};
console.log(name);
// → Faraji

当我从变量名中删除花括号时,我得到 [object Object]。为什么?

let name = {name: "Faraji", age: 23};
console.log(name);
// → [object Object]

当我使用大括号访问年龄属性时,我得到了未定义。为什么?

let {name} = {name: "Faraji", age: 23};
console.log(name.age);
// → undefined

并且在没有大括号的情况下访问 age 也会返回 undefined。但为什么?

let name = {name: "Faraji", age: 23};
console.log(name.age);
// → undefined

而更改namename1按预期工作。那很好。

let name1 = {name: "Faraji", age: 23};
console.log(name1.age);
// → 23

标签: javascript

解决方案


这是因为有了花括号,它就变成了一种解构。否则,为了访问对象值,您需要调用与该属性关联的对象。

    let  {name, age } = {name: "Faraji", age: 23};
    console.log(name, age);

解构是用它们的键拆分和对象的过程。

let name = {name: "Faraji", age: 23};
console.log(name.name, name.age);


推荐阅读