Je me demande simplement quand il est nécessaire d'utiliser le mot-clé Je n'utilise généralement pas cela dans les circonstances suivantes: p>
correct? ou n'est-ce pas juste une chose de style? p> this.somevar code> au lieu de
onevar code>. p>
5 Réponses :
Si vous utilisez cela dans un objet, cela se référera à l'objet lui-même. Voici un exemple où vous l'utiliseriez:
package { public class foo { private var variable:uint; public function foo(variable:uint) { this.variable = variable; } } }
Je disais que je pense que cela se produit de toute façon. Voir le commentaire ci-dessous; Je l'ai trouvé utile. Merci!
Vous devez généralement utiliser cela.varname si vous êtes à l'intérieur d'une fonction comportant un paramètre avec le même nom et que vous souhaitez faire référence à la variable de membre. Si le membre var est ou non privé n'a aucun effet sur la nécessité d'utiliser «cela». P>
Comme cela a déjà été mentionné, vous n'avez pas besoin d'utiliser ce em> dans un cas très simple, où vous souhaitez vous référer à une variable de membre de la classe à partir d'une méthode de membre de classe, par exemple: 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);
}
}
}
Merci d'entrer dans les détails de cela. J'apprécie les clarifications.
Hmm, je ne comprends pas pourquoi dans le tweener exemple. se réfère à la MovieClip.
@RICHARDS, c'est parce que l'appelant (à l'intérieur Tweener) a spécifié la cible Tween pour être en référence par la variable "Cette" variable. Voir la documentation sur la fonction.apply (). À votre santé
Que diriez-vous de commencer à utiliser Ce mot-clé CODE>, tout d'abord, car il vous aide à reconnaître rapidement si la variable locale ou globale (méthode ou classe détenue) dans le code. Tout ce dont vous avez besoin d'un morceau du code où vous pouvez voir
ceci code>, puis réalisez immédiatement qu'il s'agit d'une variable de classe visible globalement, au lieu de défilement supplémentaire pour la définition cible. P>
Quelque chose à ajouter aux autres réponses: Dans ActionScript 3, vous pouvez référencer les variables de membre et les fonctions de deux manières:
this["var"] = 5; // the this keyword is good for something after all! this["func"](); // " " " " " " " " "