caller プロパティ

更新 : 2007 年 11 月

現在の関数を呼び出した関数への参照を返します。

function.caller 

引数

  • function
    必ず指定します。現在実行中の Function オブジェクトの名前を指定します。

解説

caller プロパティは、実行中の関数にしか定義されません。また、JScript プログラムのトップ レベルから呼び出された関数の caller プロパティは、null が設定されます。

文字列コンテキストの中で caller プロパティを使用すると、functionname.toString と同じ結果になります。つまり、関数の逆コンパイルされたテキストが表示されます。

b139f06d.alert_note(ja-jp,VS.90).gifメモ :

caller プロパティは、高速モードで実行されている場合は利用できません。JScript の既定のモードは高速モードです。caller プロパティを使用するプログラムをコマンド ラインからコンパイルするには、/fast- を使用して fast オプションをオフにする必要があります。ASP.NET で fast オプションをオフにするのは安全ではありません。スレッドに関する問題が発生する場合があります。

使用例

caller プロパティの使用例を次に示します。

function callLevel(){
   if (callLevel.caller == null)
      print("callLevel was called from the top level.");
   else {
      print("callLevel was called by:");
      print(callLevel.caller);
   }
}
function testCall() {
   callLevel()
}
// Call callLevel directly.
callLevel();
// Call callLevel indirectly.
testCall();

/fast- オプションを指定してコンパイルすると、このプログラムの出力は次のようになります。

callLevel was called from the top level.
callLevel was called by:
function testCall() {
   callLevel()
}

必要条件

Version 2

対象

arguments オブジェクト| Function オブジェクト

参照

参照

function ステートメント