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屬性也被移除。