caller プロパティ
更新 : 2007 年 11 月
現在の関数を呼び出した関数への参照を返します。
function.caller
引数
- function
必ず指定します。現在実行中の 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();
/fast- オプションを指定してコンパイルすると、このプログラムの出力は次のようになります。
callLevel was called from the top level.
callLevel was called by:
function testCall() {
callLevel()
}
必要条件
対象
arguments オブジェクト| Function オブジェクト