callee
當(dāng)函數(shù)被調(diào)用時(shí),它的arguments.callee對(duì)象就會(huì)指向自身,也就是一個(gè)對(duì)自己的引用。
由于arguments在函數(shù)被調(diào)用時(shí)才有效,因此arguments.callee在函數(shù)未調(diào)用時(shí)是不存在的(即null.callee),且解引用它會(huì)產(chǎn)生異常。
<script>??
function?aCallee(arg)?{??
??alert(arguments.callee);??
}??
??
function?aCaller(arg1,?arg2)?{aCallee();}??
??
aCaller();??
</script>
caller
在一個(gè)函數(shù)調(diào)用另一個(gè)函數(shù)時(shí),被調(diào)用函數(shù)會(huì)自動(dòng)生成一個(gè)caller屬性,指向調(diào)用它的函數(shù)對(duì)象。如果該函數(shù)當(dāng)前未被調(diào)用,或并非被其他函數(shù)調(diào)用,則caller為null。
<script>??
function?testCaller()?{??
????var?caller?=?testCaller.caller;??
????alert(caller);??
}??
??
function?aCaller()?{??
????testCaller();??
}??
??
aCaller();