No me ha quedado claro cual es la diferencia entre ambos, si alguien me pudiese dar una explicacion breve lo agradecería
No me ha quedado claro cual es la diferencia entre ambos, si alguien me pudiese dar una explicacion breve lo agradecería
¡Hola Alumno!
Cuando pasas un parámetro por valor, se crea una copia del valor y se pasa al método o función. Esto significa que cualquier cambio que se haga en el valor dentro de la función no afectará al valor original fuera de la función.
En cambio, cuando pasas un parámetro por referencia, se pasa una referencia al valor original. Esto significa que cualquier cambio que se haga en el valor dentro de la función afectará al valor original fuera de la función.
Aquí te dejo un ejemplo práctico:
function porValor(x) {
x = 10;
}
function porReferencia(obj) {
obj.valor = 10;
}
let a = 5;
porValor(a);
console.log(a); // resultado: 5
let b = { valor: 5 };
porReferencia(b);
console.log(b.valor); // resultado: 10
En el ejemplo anterior, la función porValor
recibe un parámetro x
por valor y le asigna el valor de 10
. Sin embargo, esto no afecta al valor original de a
fuera de la función, que sigue siendo 5
.
En cambio, la función porReferencia
recibe un objeto obj
por referencia y le asigna la propiedad valor
con el valor de 10
. Esto sí afecta al valor original de b
fuera de la función, que ahora tiene un valor de 10
.
Espero que esto te haya ayudado a aclarar tus dudas.
¡Saludos!