2012-06-06 1 views
0

J'ai créé une classe JavaScript comme suit:Découvrez par exemple nom de la variable d'elle-même

function MyClass() { 
    this.myProp = ''; 
} 
MyClass.prototype.myTestFunction = function() { 
    alert('test'); 
} 

Maintenant, j'instancier cette classe.

var myTestInstance = new MyClass(); 
myTestInstance.myTestFunction(); 

Ceci génère une alerte avec 'test'.

Maintenant je veux avoir le nom de variable 'myTestInstance' dans la fonction 'myTestFunction()' sans avoir à le passer en paramètre.

Est-il en quelque sorte possible de trouver le nom de la variable de l'instance à l'intérieur de la fonction appelée?

Nous vous remercions de votre aide!

EDIT: Juste pour ajouter des informations pourquoi j'ai besoin de ceci: Chaque instance que je crée dans mon projet réel est une table HTML spéciale. Dans les champs d'en-tête sont des boutons de tri pour chaque colonne. Par conséquent j'ai ajouté dynamiquement un élément de lien avec href='javascript:myTableInstance.sort()'. Pour l'imprimer dynamiquement dans l'instance, j'avais besoin du nom de la variable.

Y aurait-il une autre, meilleure solution?

+1

réponse courte: vous ne pouvez pas. – Bergi

Répondre

5

Non, cela n'a aucun sens. Tout d'abord, l'instance n'est pas liée à une seule variable (elle peut être référencée par plusieurs variables, elle peut être référencée par none - peut-être en tant que membre d'un tableau) - la question "quel est le nom de la variable l'instance "est irréfutable. Deuxièmement, la portée de myTestFunction et myTestInstance pourrait être très différente. Dans un cas habituel, myTestFunction ne "voit" pas la portée définie par myTestInstance - donc connaître le nom de la variable ne serait pas utile.

Vous devriez simplement utiliser "this" dans myTestFunction.

Questions connexes