javascript pass-by referência vs. pass-by value
javascript emprega mecanismos de passagem por valor e referência. Primitivos, como números e strings, são passados por valor, o que significa que uma cópia do primitiva é criada na função chamada. Por outro lado, os não primitivos, principalmente os objetos, são passados por referência. Isso significa que a modificação da variável de referência na função chamada não afetará a referência no chamador, conforme demonstrado no exemplo fornecido:
var a = {key: 'value'}; substituir (a); // A ainda possui seu valor original atualização (a); // O conteúdo de A altera
var a = { key: 'value' }; replace(a); // a still holds its original value update(a); // a's contents changeConfusão com a função retângulo
O exemplo na pergunta inclui um retângulo de função aninhada com o meu parâmetro. Este parâmetro é inicialmente indefinido, mas é definido dentro da função. O motivo dessa configuração é fornecer uma maneira de compartilhar dados entre a função retângulo e sua função de área interna. Como tal, quando é atribuído dentro da função de retângulo, cria uma nova referência a um objeto que pode ser modificado tanto dentro do retângulo quanto nas funções da área, mesmo que a função de área não receba diretamente o meu parâmetro.
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