Paso de valores por "valor" o por "referencia"
Vamos con la segunda parte del tutorial de Action Script...
Cuando creamos varables, podemos querer hacer copias de estas para asignarles otros valores, esto se puede hacer de 2 formas, por valor o por referencia.
-Valor: se utiliza con tipos de datos primitivos (buleanos, enteros, etc), y lo que se hace es hacer una copia de esa variable y hay acaba su realción, si modificamos la variable copiada, la primera variable mantendra su valor, un ejemplo seria
var num1:Number = 300;
var num2:Number = num1;
aqui num1 y num2 serian 300 pero...
num2 = 100;
aqui num1 seria 300 y num2 seria 100, con lo que cambiar el valor de num2 no varia a num1.
-referencia: los valores que se pasan por referencia, se utilizan con tipos de datos complejos (arrays, objetos, etc) , si en este caso lo que se pasa es la referencia a la memoria donde esta contenido ese objeto, con lo que si hacemos un cambio en la segunda variable, los cambios tambien se aplicaran a la primera. Un ejemlo seria el siguiente:
var array1:Array = new Array("uno","dos","tres");
var array2:Array = array1;
en este caso , array1 y array2 tendrian los mismos valores...pero....si hacemos
array2[3] = "cuatro";
estamos modificando los 2 arrays, y su contenido seria uno,dos,tres,cuatro.
hay que tener mucho cuidado con esto.
Si no queremos que esto ocurra, y romper la relacion entre los arrays, se usara el metodo "slice". que obligaria a pasar por valor el objeto.
Ejemplo
var array1:Array = new Array("uno","dos","tres");
var array2:Array = array1.slice(); //ahora tendremos 2 copias independientes.

No hay comentarios:
Publicar un comentario