如何在对象中创建一个新的嵌套 属性?
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);
如果我通过 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);