Tapuscrit: Accès à des méthodes statiques dans les classes (le même ou un autre)
Supposons que nous avons le code suivant:
[Test.js file]:
class Test {
...
public static aStaticFunction():void {
...
this.aMemberFunction(); //<- Issue #1.
}
private aMemberFunction():void {
...
this.aStaticFunction(); //<- Issue #2.
}
}
[Another.js file]:
class Another {
...
private anotherMemberFunction():void {
Test.aStaticFunction(); //<- Issue #3.
}
}
Voir le Issue #x.
commentaires pour les questions (3) je veux aborder.
J'ai joué avec certaines configurations maintenant, et je n'ai pas encore.
Pouvez-vous m'aider à comprendre comment puis-je accéder à ces méthodes dans les trois lieux?
Grâce.
Vous devez vous connecter pour publier un commentaire.
Il y a un peu de code ci-dessous, mais il y a certains concepts importants à garder à l'esprit.
Une méthode statique n'existe pas sur n'importe quelle instance. Il y a de bonnes raisons à cela:
new
instanceDonc dans tous les cas, lorsque vous appelez la méthode statique, vous devez utiliser le nom complet:
Si la méthode statique doit appeler une méthode d'une instance, vous devez passer le. Cela n'a sonné l'alarme pour moi. Si la méthode statique repose sur une méthode d'instance, il ne devrait probablement pas être une méthode statique.
Pour voir ce que je veux dire, pensez à ce problème.
Si je l'appelle
Test.aStaticFunction()
de l'extérieur d'une instance, lorsque 100 cas ont été créés, dont instance de la fonction statique de l'utiliser? Il n'y a aucun moyen de savoir. Si votre méthode a besoin de connaître les données de l'instance ou d'appel des méthodes de l'instance, il est presque certainement ne devriez pas être statique.Ainsi, bien que le code ci-dessous fonctionne, il n'est probablement pas vraiment ce que vous avez besoin - ce que vous avez probablement besoin de faire est de retirer le
static
mot-clé et assurez-vous d'avoir une instance d'appel dans d'autres classes.this
est liée à une instance alors questatic
les membres sont indépendants de toute instance. Donc, si vous voulez accéder aux membres d'une instance à l'intérieur d'un membre statique que vous avez à passer dans. Néanmoins, dans ce cas je ne vois pas une raison pour avoir un membre statique en premier lieu. Je crois que vous avez besoin de deux fonctions. l'une statique et l'autre non-statique. Que font deux choses différentes, donc :Cela dit, vous pouvez partager des propriétés entre statique et les fonctions de membres à l'aide de propriétés statiques.
ne pas utiliser le nom de classe comme la Classe.staticMethod(), utilisez ceci:
de maintenir l'héritage de méthodes statiques
this
classe.