8
votes

Obtenez toutes les fonctions d'un objet en JavaScript

Par exemple,

for(var p in Math.__proto__) console.log(p)


3 commentaires

Juste curieux, pourquoi en avez-vous besoin?


MyMfunc ne doit pas apparaître dans l'énumération car vous énumérez un objet différent ( maths vs objet.pototype ). Si vous exécutez ce code dans la console, il peut apparaître comme s'il le ferait, mais vraiment la console affiche simplement le résultat de l'affectation.


Utilisation possible - Outil de documentation pour JS intégrée à des objets. Une autre utilisation - construire une interface utilisateur à l'objet mathématique (une calculatrice, par exemple)


4 Réponses :


0
votes

console.log (math) devrait fonctionner.


1 commentaires

Sauf que cela ne vous donne pas un accès programmatique, ce que j'imagine, c'est ce que l'OP recherche.



2
votes

La spécification ne semble pas définir avec quelles propriétés le < Code> Math Les fonctions sont définies avec. La plupart des implémentations, semble-t-il, appliquer donténum à ces fonctions, ce qui signifie qu'ils ne figureront pas dans l'objet lorsqu'ils sont itératés avec un pour (i en maths) boucle.

Puis-je vous demander ce que vous devez faire cela? Il n'y a pas beaucoup de fonctions, il peut donc être préférable de les définir simplement dans un tableau: xxx


0 commentaires

13
votes

objet.getownPropertyNames (maths); code> est ce que vous êtes après.

Ceci enregistre toutes les propriétés fournies avec un navigateur compatible ECMAScript 5. P>

var objs = Object.getOwnPropertyNames(Math);
for(var i in objs ){
  console.log(objs[i]);
}


0 commentaires

6
votes
var functionNames = [];

Object.getOwnPropertyNames(obj).forEach(function(property) {
  if(typeof obj[property] === 'function') {
    functionNames.push(property);
  }
});

console.log(functionNames);
That gives you an array of the names of the properties that are functions. Accepted answer gave you names of all the properties.

0 commentaires