lunes, 15 de febrero de 2010

Nociones de Action Script 3.0 (Parte II)

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