Par exemple,
for(var p in Math.__proto__) console.log(p)
4 Réponses :
console.log (math) code> devrait fonctionner. p>
Sauf que cela ne vous donne pas un accès programmatique, ce que j'imagine, c'est ce que l'OP recherche.
La spécification ne semble pas définir avec quelles propriétés le < Code> Math code> Les fonctions sont définies avec. La plupart des implémentations, semble-t-il, appliquer 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: p> donténum code> à 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) code> boucle.
Ceci enregistre toutes les propriétés fournies avec un navigateur compatible ECMAScript 5. P> objet.getownPropertyNames (maths); code> est ce que vous êtes après.
var objs = Object.getOwnPropertyNames(Math);
for(var i in objs ){
console.log(objs[i]);
}
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.
Juste curieux, pourquoi en avez-vous besoin?
MyMfunc Code> ne doit pas apparaître dans l'énumération car vous énumérez un objet différent (
maths code> vs
objet.pototype code>). 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)