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

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

伊谢尔伦
伊谢尔伦original
2017-07-20 15:06:471397parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn