Referencias en JavaScript
Mar 02, 2009 | Español | By Crysfel | 22 Comments | Read in EnglishUna referencia es un puntero al lugar exacto donde se encuentra un objeto, en JavaScript este es un concepto fundamental que debemos conocer y dominar.
Definición
Físicamente los objetos están alojados en la memoria y accedemos a ellos mediante una referencia, la cual esta contenida en una variable. Múltiples variables pueden hacer referencia al mismo objeto, a su vez este objeto puede contener referencias a otros objetos como por ejemplo strings, numbers, arrays, etc.
Cuando múltiples variables apuntan a un mismo objeto y éste es modificado, el cambio se reflejará en todas las variables que están haciendo referencia al objeto. Un ejemplo de esto es lo siguiente:
//Se crea un objeto vacío
var obj = {};
//Se crea una referencia
var reference = obj;
//Se agrega una propiedad al objeto original
obj.property = 1;
//La referencia puede acceder a la propiedad recién creada
console.debug('reference.property = '+reference.property);
El mismo principio se aplica para los arreglos, aunque estos se modifican a si mismos mediante el método “push” las referencias se verán afectadas. Analicemos el ejemplo siguiente:
var array = ['Ext JS','Mootools','jQuery'];
var ref = array;
array.push('prototype');
console.debug(ref.length == array.length);
console.debug(ref);
Referencias sólo a objetos
Es importante mencionar que en JavaScript las referencias sólo apuntan a objetos en memoria y no a otras referencias como el lenguaje C/C++. En el siguiente ejemplo se muestra este comportamiento:
//Se crea el objeto original
var obj1 = {property:'Original value'};
//Se hace una referencia al objeto original
var ref1 = obj1;
//obj1 apunta a un Nuevo objeto
obj1 = {property:'New Object!'};
//Ref1 apunta al objeto original, por lo tanto son diferentes
console.debug('same object = '+(obj1.property == ref1.property));
console.debug(obj1.property);
console.debug(ref1.property);
Concatenación
Los strings también son objetos y hacemos referencia a estos mediante una variable; es importante recordar que cuando se concatena uno o más strings siempre resulta un nuevo objeto. En el siguiente ejemplo se muestra que al concatenar un texto se crea un nuevo string y por lo tanto la referencia queda apuntando al string original.
var str = 'Hello world!';
var refStr = str;
str += ' this is Crysfel';
console.debug('same string = '+(str === refStr));
Si tienen alguna duda o sugerencia sobre este tema de referencias, pueden hacer preguntas en los comentarios, con gusto las responderé.





Commercial ExtJs and Sencha Touch Themes


muy bueno tus tutoriales sigue asi ojala sigas poniendo los demas temas que faltan saludos