JavaScript

Function.callerプロパティ

 編集:2022.08.07 by T.A.

[Edge]非推奨。→

非推奨: この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

function.caller プロパティは、指定した関数の呼び出し元の関数を返します。厳格モード、非同期関数、ジェネレーター関数の呼び出し元については null を返します。

解説

関数 f が最上位のコードで呼び出された場合、f.caller の値は null に、それ以外の場合の値は f を呼び出した関数になります。厳格モード、非同期関数、ジェネレーター関数の呼び出し元についても null を返します。

このプロパティは、廃止された arguments オブジェクトの arguments.caller プロパティを置き換えます。

特殊プロパティである __caller__ は呼び出し元の activation オブジェクトを返し、スタックの再現に利用できましたが、セキュリティ上の理由により削除されました。

注意

¶省く

関数の caller プロパティの値を確認する

以下のコードは、関数の caller プロパティの値を確認します。

function myFunc() {
  if (myFunc.caller == null) {
    return 'The function was called from the top!';
  } else {
    return 'This function\'s caller was ' + myFunc.caller;
  }
}

テスト