JavaScript 中的嵌套对象
本教程文章将解释我们如何在 JavaScript 中的另一个对象中创建多个对象。
JavaScript 对象是键值对的集合,嵌套对象是内部具有其他对象作为其属性的对象。嵌套是一种广泛使用的编程实践,因为它为代码提供了更多增强的细节。
每个对象都有自己的属性或键,用于存储对象的详细信息。逗号分隔每个属性或键。
让我们来看看我们如何在 Javascript 中创建对象和属性。
const layer0 = {
layer1Item1: 'Layer 1 Item 1 Text',
layer1Item2: 'Layer 1 Item 2 text',
layer1Item3: 'Layer 1 Item 3 Text',
layer1Item4: 'Layer 1 Item 4 text'
}
在这里,如果你能看到,const layer0
是对象的名称。这就是我们在 Javascript 中创建对象的方式。现在在对象中,如你所见,layer1Item1
、layer1Item2
、layer1Item3
和 layer1Item4
是对象的属性。这些属性必须是独一无二的,并且是将一个对象与另一个对象区分开来的区分因素。
现在,如果你想在另一个对象中创建一个对象,内部对象被创建为外部对象的一个属性,并且这个内部对象只能使用外部对象访问。
在 JavaScript 中创建嵌套对象
const layer0 = {
layer1Item1: 'Layer 1 Item 1 Text',
layer1Item2: {
layer2Item1: 'Layer 2 Item 2 Text',
layer2Item2: false
}
};
在此示例中,layer1Item2
是另一个对象内的新对象。但是,layer1Item1
是对象的属性,而 layer1Item2
是一个对象。两者看起来很相似,因为新创建的对象也是作为外部对象 layer0
的属性创建的。
现在,如果你想访问内部对象,你会写出外部对象的名字,在一个点之后,你会写出内部对象的名字。
layer0.layer1Item2
如果你想访问内部对象中的某些属性,代码将是:
layer0.layer1Item2.layer2Item1
Javascript 中的多重嵌套
Javascript 中的嵌套没有限制。你可以创建 n 个层次结构。访问对象的方法与访问内部对象的方法相同,如前面的示例中所述。
const layer0 = {
layer1Item1: 'Layer 1 Item 1 Text',
layer1Item2: {
layer2Item1: 'Layer 2 Item 2 Text',
layer2Item2: false,
layer2Item3: {layer3Item1: 'Layer 3 Item 2 Text'}
}
};
在此示例中,创建了 3 个对象,layer0
、layer1
和 layer2
。layer2
对象位于 layer1
内,而 layer1
位于 layer0
内。本示例中有 3 个层或层次结构。现在,layer2
被写成 layer1
的一个属性。
要访问 layer2
的属性,我们将编写以下代码。
layer0.layer1Item2.layer2Item1.layer3Item1
现在,要在以下代码中向对象添加新属性:
let layer0 = {
layer1Item1: 'Layer 1 Item 1 Text',
layer1Item2: 'Layer 1 Item 2 text',
layer1Item3: 'Layer 1 Item 3 Text',
layer1Item4: 'Layer 1 Item 4 text'
}
我们将简单地将对象名称与对象属性附加一个点,并为其分配一个如下所示的值:
layer0.layer1Item5 = 'New Item created';
现在生成的对象将如下所示:
{
layer1Item1: 'Layer 1 Item 1 Text', layer1Item2: 'Layer 1 Item 2 text',
layer1Item3: 'Layer 1 Item 3 Text', layer1Item4: 'Layer 1 Item 4 text',
layer1Item5: 'New Item Created'
}
如果要从对象中删除任何属性,这很容易理解。我们将 delete
关键字与附加在对象属性上的对象名称一起使用,并用要删除的点分隔。看下面的例子:
考虑我们有以下对象。
let layer0 = {
layer1Item1: 'Layer 1 Item 1 Text',
layer1Item2: 'Layer 1 Item 2 text',
layer1Item3: 'Layer 1 Item 3 Text',
layer1Item4: 'Layer 1 Item 4 text'
}
我们要删除 layer1Item4 属性;我们将编写以下代码。
delete layer0.layer1Item4;
现在对象将如下所示。
{
layer1Item1: 'Layer 1 Item 1 Text', layer1Item2: 'Layer 1 Item 2 text',
layer1Item3: 'Layer 1 Item 3 Text',
}