(1)callee返回正在被執行的函式物件,
或者可以說是實參列表所對應的是哪個函式,就返回哪個函式。
通俗一點說就是,arguments。callee在哪個函式內部,她就返回哪個函式本身
function test(a, b, c) { var len1 = arguments。callee。length // 形參列表長度 var len2 = test。length // 形參列表長度 // 由上可看出:arguments。callee == test var len3 = arguments。length // 實參列表長度}test(1, 2, 3)
那麼callee有什麼用?
var sum = (function (n){ if (n <= 1) { return 1 // 出口 } return n + arguments。callee(n - 1) // 匿名函式內部遞迴的利用}(100))console。log(sum)
=> 5050
(2)caller返回被呼叫函式的呼叫函式
function fn1() { fn2()}function fn2 () { console。log(fn2。caller) // 返回fn1函式}fn1()=>function fn1() { fn2()}
// 提示:callee/caller/arguments在嚴格模式下,不被透過