Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. Référence
  4. Objets natifs standards
  5. Function
  6. Function.caller

Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in EnglishAlways switch to English

Function.caller

Non standard: Cette fonctionnalité n'est pas standardisée. Nous déconseillons d'utiliser des fonctionnalités non standard en production, car leur prise en charge par les navigateurs est limitée, et elles peuvent être modifiées ou supprimées. Toutefois, elles peuvent constituer une alternative appropriée dans certains cas où aucune option standard n'existe.

La propriétéfunction.caller renvoie la fonction qui a appelé la fonction donnée. Cette propriété est interdite en mode strict.

Description

Si la fonctionf a été invoquée par du code situé au plus haut niveau, la valeur def.caller seranull, sinon, ce sera la fonction qui a appeléf.

Cette propriété remplace la propriété obsolètearguments.caller de l'objetarguments.

La propriété spéciale__caller__ qui renvoyait l'objet qui dans lequel était fait l'appel a été supprimée pour des raisons de sécurités.

Notes

Dans une fonction récursive, cette propriété ne peut pas être utilisée pour reconstituer la pile d'appels (call stack). Par exemple, si on a :

js
function f(n) {  g(n - 1);}function g(n) {  if (n > 0) {    f(n);  } else {    stop();  }}f(2);

Au moment oùstop() est appelé, la pile sera :

js
f(2) -> g(1) -> f(1) -> g(0) -> stop()

Et ceci est vrai :

js
stop.caller === g && f.caller === g && g.caller === f;

Donc si on essaie d'obtenir la pile de cette façon :

js
var f = stop;var stack = "Stack trace:";while (f) {  stack += "\n" + f.name;  f = f.caller;}

la boucle ne s'arrêterait jamais.

Exemples

Vérifier la valeur de la propriétécaller

Dans l'exemple suivant, on verifie la propriétécaller de la fonction.

js
function maFonction() {  if (maFonction.caller == null) {    return "Fonction appelée au plus haut niveau !";  } else {    return "Fonction appelée par " + maFonction.caller;  }}

Spécifications

Ne fait partie d'aucune spécification. Implémentée avec JavaScript 1.5.

Compatibilité des navigateurs

Voir aussi

Help improve MDN

Learn how to contribute

Cette page a été modifiée le par lescontributeurs du MDN.


[8]ページ先頭

©2009-2025 Movatter.jp