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()
}
必要条件
対象
arguments オブジェクト| Function オブジェクト