JS中的calleecaller是什麼?

(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在嚴格模式下,不被透過