如何在对象中创建一个新的嵌套 属性?

How to create a new nested property in an object?

如果我通过 let obj = {} 创建一个对象,我可以通过 obj.link = 'test' 创建一个新的 link 属性 并且它有效。

如果我想创建一个嵌套的 属性 怎么办?

下面的代码给出了 undefined 错误:

let obj = {}
obj.link.link = 'test'
console.log(obj.link.link)

正确的做法是什么?

您需要一个对象来寻址对象内部的 属性。

要分配使用默认对象并将值分配给最后一个 属性。

let obj = {};

(obj.link ??= {}).link = 'test';

console.log(obj.link.link);
console.log(obj);

您正在尝试访问 link 内的 link 属性,但当时不存在。所以你可以做下面的事情。

obj = {}
obj.link = {};
obj.link.link = 'test';
console.log(obj.link.link);
console.log(obj);

 obj = {}
 obj.link = {link: 'test'}
 console.log(obj.link.link);
 console.log(obj);