JS之arguments、arguments.callee、caller介紹

arguments:調用函數時產生的,保存實參。

arguments.callee:被調用時指向函數自身。

caller:指向調用某函數的那個函數。

 

下面通過一段代碼說明它們的用處:

function A (n) {
    console.log(arguments);                  // Arguments [1, callee: ƒ, Symbol(Symbol.iterator): ƒ]
    console.log(A);                          // ƒ A(n)
    console.log(arguments.callee);           // ƒ A(n)
    console.log(A.caller);                   // ƒ B ()
    console.log(arguments.callee.caller);    // ƒ B ()
}

function B () {
    A(1)
}

B();

arguments 是一個對應於傳遞給函數的參數的類數組對象。是所有(非箭頭)函數中都可用的局部變量。它類似於Array,但除了length屬性和索引元素之外沒有任何Array屬性。typeof參數返回 'object'。

注意:現在在嚴格模式下,arguments對象已與過往不同。不再與函數的實際形參之間共享,同時caller屬性也被移除。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章