Maison > interface Web > js tutoriel > Introduction et exemples d'attributs d'appelant et d'appelé dans les connaissances js_Basic

Introduction et exemples d'attributs d'appelant et d'appelé dans les connaissances js_Basic

WBOY
Libérer: 2016-05-16 16:45:35
original
1815 Les gens l'ont consulté

1. appelant

Renvoie une référence à la fonction qui a appelé la fonction actuelle.

functionName.caller

L'objet functionName est le nom de la fonction exécutée.

Description

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 Javascript, alors l'appelant contient null .

L'exemple suivant illustre l'utilisation de l'attribut caller :

Copier le code Le code est le suivant :

function callerDemo() {
if ( arguments. caller) {
var a= callerDemo.caller.toString();
alert(a);
} else {
alert("ceci est une fonction top");
}
>
function handleCaller() {
callerDemo();
>
handleCaller();
function calleeDemo() {
alert(arguments.callee);
>
calleeDemo();


2. 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 de fonction facultatif est le nom de l'objet Function en cours d'exécution.

Description

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, qui représente une référence à l'objet fonction lui-même. Ceci est bénéfique pour la récursion des fonctions anonymes ou pour assurer l'encapsulation des fonctions. Par exemple, l'exemple suivant calcule de manière récursive le. somme des nombres naturels de 1 à n. Cette propriété n'est disponible que lorsque la fonction associée est en cours d'exécution. Il convient également de noter que l'appelé possède un attribut de longueur, ce qui est parfois meilleur 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.

Exemple

Copier le code Le code est le suivant :

//l'appelé peut s'imprimer
function calleeDemo () {
alert(arguments.callee);
}
//Utilisé pour vérifier les paramètres
function calleeLengthDemo(arg1, arg2) {
if (arguments.length==arguments .callee .length) {
          window.alert("Vérifiez que les longueurs des paramètres formels et réels sont correctes !");
          return ;
alert("Longueur du paramètre formel : " arguments.callee.length) );
}
}
//Calcul récursif
var sum = function(n){
if ( n < = 0)                                                                                                                                                                                                                                  .




Copier le code

Le code est le suivant :

var sum = function(n){ if (1==n) return 1;else return n sum (n-1); Lors de l'appel : alert(sum(100));
La fonction contient une référence à sum elle-même. Le nom de la fonction est juste un nom de variable. Appeler sum à l'intérieur de la fonction équivaut à appeler une variable globale. Utiliser l'appelé serait une meilleure méthode.

Étiquettes associées:
js
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