Maison >interface Web >js tutoriel >Explication détaillée de la façon d'obtenir le nom de la fonction et l'instance de la méthode de paramètre en javascript
1. Trois méthodes d'implémentation pour obtenir des noms de fonctions
Exemple 1 :
Une méthode vue dans le guide faisant autorité js :
Function.prototype.getName = function(){ return this.name || this.toString().match(/function\s*([^(]*)\(/)[1] }
Exemple 2 :
Si la fonction actuelle est une fonction nommée, son nom est renvoyé. S'il s'agit d'une fonction anonyme, le nom de la variable de fonction attribuée est renvoyé. . S'il s'agit d'une fonction anonyme dans une fermeture, "anonyme" est renvoyé.
var getFnName = function(callee){ var _callee = callee.toString().replace(/[\s\?]*/g,""), comb = _callee.length >= 50 ? 50 :_callee.length; _callee = _callee.substring(0,comb); var name = _callee.match(/^function([^\(]+?)\(/); if(name && name[1]){ return name[1]; } var caller = callee.caller, _caller = caller.toString().replace(/[\s\?]*/g,""); var last = _caller.indexOf(_callee), str = _caller.substring(last-30,last); name = str.match(/var([^\=]+?)\=/); if(name && name[1]){ return name[1]; } return "anonymous" };
Utilisation : Exécutez cette fonction à l'intérieur de la fonction à étudier, en passant un paramètre, qui est arguments.callee.
function ee(){ //+++++++++++++++++++++++++++++++++ var fnname =getFnName(arguments.callee) //+++++++++++++++++++++++++++++++++ alert(fnname) }; ee();
Exemple 3 :
function getFuncName(_callee) { var _text = _callee.toString(); var _scriptArr = document.scripts; for (var i=0; i<_scriptArr.length; i++) { var _start = _scriptArr[i].text.indexOf(_text); if (_start != -1) { if (/^function\s*\(.*\).*\r\n/.test(_text)) { var _tempArr = _scriptArr[i].text.substr(0, _start).split('\r\n'); return _tempArr[_tempArr.length - 1].replace(/(var)|(\s*)/g, '').replace(/=/g, ''); } else return _text.match(/^function\s*([^\(]+).*\r\n/)[1]; } } } function a() { return getFuncName(arguments.callee); } var b = function() { return getFuncName(arguments.callee); } window.alert(a()); window.alert(b());
2. js récupère tous les paramètres de la fonction et parcourt tous les noms et valeurs d'attributs d'un objet Méthode
1. Récupérer tous les paramètres
function test(){ for(var i=0;i<arguments.length;i++) document.write(arguments[i]); }
2. objet
<script language="javascript"> var obj = new Object(); obj.myname = "我是对象"; obj.pro2 = "23"; obj.pro3 = "abcdeg"; php程序员站 for (items in obj){ document.write("属性:"+items+"的值是 ("+ obj[items] +")"); document.write("<br>"); } </script>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!