Maison > Article > interface Web > Explication détaillée des exemples d'utilisation de l'attribut de l'appelant et de l'attribut de l'appelé de la fonction javascript
attribut appelant
renvoie une référence à la fonction, c'est-à-dire le corps de la fonction qui a appelé la fonction actuelle.
functionName.caller : L'objet functionName est le nom de la fonction exécutée.
Remarque :
Pour les fonctions, l'attribut de l'appelant n'est défini que lorsque la fonction est exécutée. Si la fonction est appelée depuis le niveau supérieur d'un programme JScript, alors l'appelant contient null . Si l'attribut caller est utilisé dans un contexte de chaîne, le résultat est le même que functionName.toString, c'est-à-dire que le texte décompilé de la fonction est affiché.
Code Js :
function CallLevel(){ if (CallLevel.caller == null) alert("CallLevel was called from the top level."); else alert("CallLevel was called by another function:\n"+CallLevel.caller); } function funCaller(){ CallLevel(); } CallLevel(); funCaller()
attribut appelé
Renvoie l'objet Function en cours d'exécution, qui est le corps de l'objet Function spécifié.
[function.]arguments.callee : Le paramètre facultatif de fonction est le nom de l'objet Function en cours d'exécution.
Explication :
La valeur initiale de l'attribut appelé est l'objet Function en cours d'exécution. L'attribut
callee est membre de l'objet arguments. Il représente une référence à l'objet fonction lui-même, ce qui est utile pour masquer la récursion de la fonction
ou assurer l'encapsulation de la fonction. L'exemple calcule récursivement les nombres naturels de 1 à n et. Cet attribut
n'est disponible que lorsque la fonction associée est en cours d'exécution. Il convient également de noter que l'appelé a un attribut de longueur, qui est parfois
utilisé pour la vérification. arguments.length est la longueur réelle du paramètre et arguments.callee.length est la longueur du paramètre formel
À partir de là, vous pouvez déterminer si la longueur du paramètre formel est cohérente avec la longueur réelle du paramètre lors de l'appel.
Code Js :
//callee可以打印其本身 function calleeDemo() { alert(arguments.callee); } //用于验证参数 function calleeLengthDemo(arg1, arg2) { if (arguments.length==arguments.callee.length) { window.alert("验证形参和实参长度正确!"); return; } else { alert("实参长度:" +arguments.length); alert("形参长度: " +arguments.callee.length); } } //递归计算 var sum = function(n){ if (n <= 0) return 1; else return n +arguments.callee(n - 1) }
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!