caller プロパティ

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

function.caller 

引数

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

解説

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

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

注意

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();

このプログラムによって、次のような出力が生成されます。

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

必要条件

Version 2

対象

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

参照

参照

function ステートメント