Bueno, sí. Ahora he llegado un poquito más allá.
Además que he leído esto:
Cita:
Iniciado por Jonathan Snook the
ECMAScript specification [PDF] actually makes somewhat of a separation between primitive types and objects:
A primitive value is a member of one of the following built-in types:
Undefined,
Null,
Boolean,
Number, and
String; an object is a member of the remaining built-in type Object; and a method is a function associated with an object via a property.
Lo he leído en esta página:
JavaScript: Passing by Value or by Reference
Que además nos explica cosas curiosas, por ejemplo que si pasamos un método de una instancia por argumento a una función ejecutadora (una función que se encargue de ejecutar funciones
) entonces pasan estas cosas:
Código PHP:
function myobject(){
this.value = 5;
}
myobject.prototype.add = function(){
this.value++;
}
var o = new myobject();
alert(o.value); // o.value = 5
o.add();
alert(o.value); // o.value = 6
function objectchanger(fnc){
fnc(); // runs the function being passed in
}
objectchanger(o.add);
alert(o.value); // sorry, still just 6
En fin, creo que voy a ser incapaz de entenderlo, dicen que es porque
this now refers to the context of the object making the call instead of the object’s function we just passed in.
Cuando me ocurra seguro que estoy tres horas dándole vueltas... jeje.
Saludos.