9
votes

Comment obtenir le nom de l'objet dans JavaScript?

Par exemple, j'ai un tel objet: xxx

et un tel code: xxx

Comment obtenir le nom de l'objet dans la fonction corps. Donc, je veux dire que je devrais savoir que le nom de l'obj est «sombre».

J'ai essayé d'inspecter l'objet avec Firebug, mais il ne s'agit que de la propriété de l'objet. Il ne montre pas certaines méthodes ou propriétés internes, avec lesquelles je pourrai savoir

merci.


1 commentaires

Reportez-vous à cette question: Stackoverflow.com/questions/722668/... . Il explique comment obtenir le nom et les valeurs d'objet.


5 Réponses :


18
votes

vous ne pouvez pas. Vous ne passez que l'objet {noir: "mauvais", gris: "pas si mauvais '} dans test . Cet objet n'a pas intrinsèquement le nom "sombre", c'est juste un objet qui existerait comme la propriété sombre de l'objet A . Cette information est irrémédiablement perdue lors de la transmission d'une fonction.

Vous essayez essentiellement de récupérer le nom de la variable qui détenait la valeur avant que la valeur ne soit passée dans la fonction. Ce n'est pas possible.


2 commentaires

+1 Les objets et les variables sont deux bêtes totalement différentes, chaque objet est mentionné par 0 aux variables de l'infini et ne devrait pas savoir quoi que ce soit à propos d'entre eux.


D'accord. C'est une pitié (pour moi dans ce cas). J'ai compris



4
votes

Le "nom d'un objet" n'est pas une propriété intrinsèque d'un objet. Un "nom" est le nom dans un contexte donné. Lorsque vous passez un objet à une fonction, vous venez de passer cet objet, pas le contexte dans lequel il a été nommé ("sombre" dans votre exemple).

Ce que vous voulez accomplir, vous êtes sur la mauvaise piste.


1 commentaires

Je viens de conserver des configurations dans des objets et je voulais faire moins de propriétés de la propriété (par exemple, la propriété de type «de type» de nom mais pas de la propriété d'objet 'Type')



3
votes

Je tiens à vous diriger vers la possibilité de parcourir un objet et de trouver récursivement le nom du parent de certaines biens. Avec elle, votre fonction ressemblerait à: xxx

FindParents est: xxx

Le problème bien sûr est qu'une propriété n'aurait pas besoin d'être unique. Comme dans: xxx

Eh bien, peut être utilisable. Vous pouvez trouver une démo de la fonction FindParents dans http://jsfiddle.net/kooiinc/kj2b9/


4 commentaires

Donc, vous passez dans "sombre" comme argument pour savoir avec beaucoup de code que le "nom de l'objet" est "sombre" ...? ;-P


Non, vous passez «sombre» pour connaître le nom de ses parents.


Aucune infraction, mais ne serait-il pas plus facile de concevoir la fonction de fonction (parent, nœud) {var elem = parent [noeud]; } ? :)


En fait, c'est ce que vous voyez dans FindParents (obj, clé [ rootname]) ; ~)



2
votes

Il est possible avec:

var props = [];
loadProps(a, props);

console.log( props.join(",") );


0 commentaires

2
votes

var a = { Nom: 'a', 'Light': "Bien", 'foncé' : { Nom: 'Dark', 'Black': 'Bad', 'gris': "pas si mal" } } code>

De cette façon, vous pouvez faire P>

console.log(a.name,a.dark.name);


0 commentaires