Hola
miguelcubas
Pues teoricamente la variable
sack en el segundo ejemplo al final de la ejecución pasa a ser el mismo objeto que en el primer ejemplo. Si en el segundo ejemplo instanciases la clase
sack con otro nombre distinto de
sack, podrías hacer varias instancias. Te pongo un ejemplo:
Código PHP:
function sack() {
this.init_sack = init_sack;
}
function init_sack() {
alert('fadsfa');
}
var instancia1 = new sack();
var instancia2 = new sack();
Esa es la diferencia con el primer ejemplo. En éste primero, sólo hay una variable
sack que es un objeto que contiene un método, no puedes hacer varias instancias. Sí puedes hacer varias copias de la instancia, que serán la misma con diferentes nombres:
Código PHP:
var sack = {
init_sack:function () {
alert('fadsfa');
},
variable: 6
}
var paco = sack;
alert( "sack.variable: "+sack.variable+"\r\npaco.variable: "+paco.variable );
paco.variable = 234;
alert( "sack.variable: "+sack.variable+"\r\npaco.variable: "+paco.variable );
Pero no podrás hacer instancias diferentes, no podrás hacer que
paco actúe independientemente de
sack. Eso se revela fácilmente aquí:
Código PHP:
alert( instancia1 == instancia2 ); // false, no son el mismo objeto (sí iguales). Cambiando uno No cambias el otro
alert( sack == paco ); // true, son el mismo objeto: cambiando uno cambias el otro
Espero que lo entiendas así.
Un saludo.