Como ya se ha mencionado, no es necesario utilizar esta en un caso muy simple, en la que desea hacer referencia a una variable miembro de la clase de un método miembro de la clase, por ejemplo:
public function myClassMethod() : void
{
// "this" is redundant here, as it is implied if omitted
this.myPrivateOrPublicVariable = 123;
}
Tenga en cuenta que hay casos en que este (que se evalúa en el momento en que se encuentra en un programa, en lugar de en una instanciación como se podría adivinar) no se refiere a la clase en la que está escrito. Más específicamente, esto sucede cuando lo usa dentro de una función que se llamará utilizando un método como Function.apply(). Este método permite al que llama especificar el objeto al que se hará referencia en este, y se usa comúnmente en devoluciones de llamadas, p. en motores de tweening.
// Call myFunction(listOfArguments[0], listOfArguments[1] ...),
// with this referring to objectReferredToByThis.
myFunction.apply(objectReferredToByThis, listOfArguments);
Aquí hay un ejemplo con el popular Tweener motor de interpolación, donde el comportamiento por defecto es tener este se refieren al objeto interpolado (es decir, el _mc MovieClip), en lugar de a una instancia de la clase en que este está escrito (es decir, MyClass).
package
{
/* ... imports ... */
public class MyClass extends Sprite
{
private var _mc : MovieClip;
public function tweenSomething() : void
{
var tween : Object = {
x: 0,
time: 1,
onComplete: function() : void {
// Here, "this" will not refer to the instance
// of MyClass, but rather to the _mc MovieClip,
// which is the object being tweened below.
this.visible = false;
}
};
Tweener.addTween(_mc, tween);
}
}
}
En el código anterior, el uso de este es necesario, porque queremos instruir explícitamente el tiempo de ejecución para modificar el estado visible de nuestra MovieClip (_mc). Si no hubiésemos usado este, la referencia visible se habría referido a MyClass.visible, debido al cierre de la función.
gracias. esto aclara lo que esperaba averiguar. – jml