"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como você pode acessar o objeto pai de um objeto filho aninhado em JavaScript?

Como você pode acessar o objeto pai de um objeto filho aninhado em JavaScript?

Publicado em 2024-11-20
Navegar:255

How Can You Access the Parent Object of a Nested Child Object in JavaScript?

Objetos Javascript: Determinando a ascendência

Em Javascript, os objetos podem ser aninhados, criando uma estrutura hierárquica. No entanto, acessar o objeto pai a partir de um objeto filho aninhado pode ser desafiador.

Considere o seguinte objeto aninhado:

obj: { subObj: { foo: 'hello world' } };

Para referenciar o subobjeto dentro de s, usamos:

var s = obj.subObj;

Agora, queremos obter o objeto pai obj usando s.

Infelizmente, não há mecanismo direto para recuperar o objeto pai de um objeto filho em Javascript. Isso ocorre porque os objetos filhos não têm conhecimento da existência de seus pais.

Solução alternativa

Uma solução alternativa é utilizar uma função para estabelecer um relacionamento pai-filho em objetos aninhados . Estendendo o código acima:

var main = {
    name : "main object",
    child : {
        name : "child object",
        parent : null
    },
    init : function() {
        this.child.parent = this;
        delete this.init;
        return this;
    }
}.init();

Na função init, atribuímos o objeto pai à propriedade pai dentro do objeto filho. Ao chamar isso, nos referimos ao objeto atual (ou seja, principal) de dentro do objeto filho aninhado. Por fim, removemos a função init para maior clareza do código.

Usando esta técnica, agora podemos acessar o objeto pai do filho:

main.child.parent.name // returns "main object"
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3