Maison > interface Web > js tutoriel > le corps du texte

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

伊谢尔伦
Libérer: 2017-07-20 15:06:47
original
1416 Les gens l'ont consulté

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()
Copier après la connexion

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) 
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal