calerとcaleeの違い

1176 ワード

calerは関数の参照を返します.この関数は現在の関数を呼び出します.caleeを実行中の関数自体の参照に戻します.これはアーグメンントの属性です.
caler calerは関数の参照を返します.この関数は現在の関数を呼び出します.この属性を使うには注意してください.1この属性は、関数が実行されている場合にのみ有効です.javascriptプログラムでは、関数がトップレベルで呼び出されている場合、nullに戻ります.
functionName.caller:functionNameは現在実行中の関数です.
var a = function() { 
alert(a.caller); 
} 
var b = function() { 
a(); 
} 
b();
上記のコードの中で、bはaを呼び出しました.a.calerはbの参照を返しました.結果は以下の通りです.
var b = function() { 
a(); 
} 
aを直接呼び出した場合(つまり、aはどの関数でも呼び出され、トップレベルで呼び出されます)、nullを返します.
var a = function() { 
alert(a.caller); 
} 
var b = function() { 
a(); 
} 
//b(); 
a();
出力結果:
null
calee caleeは実行中の関数自体の参照に戻します.これはargmentsの属性の一つです.caleeを使う時は注意してください.1この属性は関数実行時にのみ有効です.2 length属性があり、形参の個数を得るために使用できます.したがって、形参と実数が一致するかどうかを比較するために使用できます.すなわち、argments.lengthがargments.callee.length 3に等しいかどうかを比較して、匿名関数を再帰するために用いることができる.
var a = function() { 
alert(arguments.callee); 
} 
var b = function() { 
a(); 
} 
b();
aはbで呼び出されましたが、a自体の参照を返しました.結果は以下の通りです.
var a = function() { 
alert(arguments.callee); 
}