caller和callee
阿新 • • 發佈:2019-01-30
1 :caller 返回一個呼叫當前函式的引用 如果是由頂層呼叫的話 則返回null
(舉個栗子哈 caller給你打電話的人 誰給你打電話了 誰呼叫了你 很顯然是下面a函式的執行 只有在打電話的時候你才能知道打電話的人是誰 所以對於函式來說 只有caller在函式執行的時候才存在)
var callerTest = function() {
console.log(callerTest.caller) ;
} ;
function a() {
callerTest() ;
}
a() ;//輸出function a() {callerTest();}
callerTest() ;//輸出null
2 :callee 返回一個正在被執行函式的引用 (這裡常用來遞迴匿名函式本身 但是在嚴格模式下不可行)
callee是arguments物件的一個成員 表示對函式物件本身的引用 它有個length屬性(代表形參的長度)
var c = function(x,y) {
console.log(arguments.length,arguments.callee.length,arguments.callee)
} ;
c(1,2,3) ;//輸出3 2 function(x,y) {console.log(arguments.length,arguments.callee.length,arguments.callee)}