Il existe deux propriétés spéciales à l'intérieur de la fonction: les arguments et ceci. Les arguments sont un objet de classe de tableau qui contient tous les paramètres passés.
Mais cet objet a également une propriété appelée Callee, qui est un pointeur vers une fonction qui possède l'objet Arguments.
Veuillez consulter l'exemple de fonction factorielle classique:
La copie de code est la suivante:
fonction factorielle (num) {
if (num <= 1) {
retour 1;
} autre {
retour num * factoriel (num - 1);
}
}
fonction factorielle (num) {
if (num <= 1) {
retour 1;
} autre {
retour num * arguments.callee (num - 1);
}
}
Il n'y a rien de mal à utiliser la première méthode, mais le couplage est trop élevé et pas très bon. Une fois le nom de fonction modifié, le nom de la fonction interne doit également être modifié.
La deuxième méthode est un couplage faible, quelle que soit la façon dont le nom de la fonction est modifié, il n'affectera pas l'exécution de la fonction.
Cela fait référence à l'objet Environment sur lequel la fonction est exécutée, ou il peut également être considéré comme cette valeur.
La copie de code est la suivante:
window.color = "red";
var o = {couleur: "bleu"};
Fonction saitColor () {
alerte (this.color);
}
sayColor (); // rouge
O.SayColor = SayColor;
o.saycolor (); // bleu
L'attribut de l'appelant maintient une référence à la fonction qui appelle la fonction actuelle. Si la fonction actuelle est appelée dans la portée globale, sa valeur est nul
La copie de code est la suivante:
fonction outer () {
innter ();
}
fonction inner () {
//alert(innter.Caller) ;//La couplage est trop élevé
alert (arguments.callee.Caller);
}
extérieur();
Ce qui précède est tout le contenu des propriétés internes des fonctions JavaScript. J'espère que tu peux l'aimer