Si j'ai une fonction comme suit: et je fais quelque chose de stupide comme p> quand foo n'est pas défini , Y a-t-il une manière que je puisse avoir ma fonction de capture appelée, avec nom étant «FOO» et des arguments étant un tableau contenant 'bar »? p> p>
3 Réponses :
someFunctionThatMayBeUndefinedIAmNotSure ? someFunctionThatMayBeUndefinedIAmNotSure() : throw new Error("Undefined function call");
try { foo(); } catch(e) { callUndefinedFunctionCatcher(e.arguments); } UPDATEDpassing e.arguments to your function will give you what you tried to pass originally.
Arguments CODE> n'est pas une propriété de l'objet Erreur code> code>, il s'agit d'une propriété de fonctions. Dans votre exemple
E code> est un objet d'erreur et donc
e.arguments code> non défini.
Je pense que c'est juste ce genre de vérification de la stratégie de la capture - toutes les personnes veulent s'en sortir.
Je viens de courir ce qui suit dans Chrome: essayez {bar ('foo'); } attraper (e) {alerte (e.arguments); Pour (x in e) {alerte (x)}} il alerte "foo", puis alerte les "arguments" comme une propriété de E. Suis-je fou? Ou tout simplement mal?
Essayer / attraper dans JS n'est pas toujours une bonne idée, spécialement s'il y a des fonctions asynchrones à l'intérieur du bloc. Vérifiez Stackoverflow.com/Questtions/3677783/...
Il y a dans Mozilla JavaScript 1.5 de toute façon (c'est non standard).
Vérifiez ceci: p> joli cool. Lire la suite à https://developer.mozilla.org/fr/core_javascript_1. 5_Reference / Global_Objects / Objet / Noschmethod P> P>
C'est très cool et presque exactement ce que je cherchais - y a-t-il un équivalent qui fonctionne dans IE 6+?
En décembre 2015, il s'agit d'une fonction obsolète qui ne devrait plus être utilisée.
@ Loïc Que doit être utilisé alors?