var
crea una variable local dentro tools.triangle
. Las variables originX
y originY
no pueden interactuar con fuera de tools.triangle
. this
es un puntero al objeto actual con el que se está tratando. El segundo ejemplo se puede usar para dar propiedades a un objeto haciendo new tools.triangle();
. Si no se utiliza new
y sólo tiene que utilizar tools.triangle();
, this
apuntará al objeto global que es el objeto window
. Se puede cambiar el objeto al que this
puntos mediante el uso de los métodos de la función call();
y apply();
así:
var myObj = {};
tools.triangle.call(myObj);
// "this" in tools.triangle now points to myObj
// myObj now has the properties originX and originY
Es importante saber que this
pueden hacer referencia a cualquier objeto, así como ser indefinido o null
en modo estricto ES5 .
Puede encontrar más información here.
'var' variable es privada. 'this' variable es público. – elclanrs
@ elclanrs: ese comentario no es útil porque es engañoso. Las variables se pueden declarar como globales, 'this' está relacionado con el contexto de ejecución, no es una variable en el sentido habitual, aunque puede considerarse una variable local. – RobG