— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
cópia Rasa
cópia Rasa é uma cópia bit-wise de um objeto. Um novo objeto é criado que tem uma cópia exata dos valores no objeto original. Se algum dos campos do objeto são referências a outros objetos, apenas os endereços de referência são copiados ou seja, apenas o endereço de memória é copiado.
cópia profunda
uma cópia profunda copia todos os campos, e faz cópias da memória dinamicamente alocada apontadas pelos campos., Uma cópia profunda ocorre quando um objeto é copiado junto com os objetos a que se refere.
cópia superficial: ela faz uma cópia da referência a X em Y. pense nisso como uma cópia do endereço de X. Assim, os endereços de X e Y serão os mesmos ou seja, eles estarão apontando para o mesmo local de memória.
cópia profunda: ele faz uma cópia de todos os membros do X, aloca diferente localização de memória para Y e, em seguida, atribui os membros copiados para Y para obter cópia profunda. Desta forma, se X desaparecer Y ainda é válido na memória.,
o termo correto para usar seria Clonagem, onde você sabe que ambos são totalmente iguais, mas ainda diferentes (ou seja, armazenados como dois locais diferentes no espaço de memória).
considere este exemplo:
var employeeDetailsOriginal = { name: 'Manjula', age: 25, Profession: 'Software Engineer' };
digamos que deseja criar uma duplicata disto, para que, mesmo que mude os valores originais, possa sempre regressar ao original.,
posso fazer isso:
var employeeDetailsDuplicate = employeeDetailsOriginal; //Shallow copy!
Se a gente mudar um valor:
employeeDetailsDuplicate.name = 'NameChanged';
Esta declaração também alterar o nome de employeeDetailsOriginal, uma vez que temos uma cópia superficial, ou uma referência a var employeeDetailsOriginal. Isto significa que também estás a perder os dados originais.
mas, ao criar uma nova variável usando as propriedades da variável empregeedetailsoriginal original, você pode criar uma cópia profunda.se mudar de emprego, contacte o seu médico imediatamente.,nome, só irá afetar employeeDetailsDuplicate e não employeeDetailsOriginal
Diagramatic exemplo
Assim Como a cópia de objeto de JavaScript para nova variável NÃO por referência?
sua única opção é de alguma forma clonar o objeto.
método de javascript puro para clonar objeto
Leave a Reply