關於argument變數的理解

gecko23發表於2014-10-15

1.關於Argument陣列的行為特性

  1. arguments的行為有點像陣列,但它其實並不是陣列,它不具備JavaScript核心陣列的一些方法如join、sort、slice等方法

  2. arguments物件本身是個由函式呼叫時傳入的實參組成的偽陣列,訪問單個引數的方式與訪問陣列元素的方式相同。索引 n 實際上是
    arguments 物件的 0…n 屬性的其中一個引數。

function test(x, y, z) {
console.log(test.length);//函式的形參個數,3
console.log(arguments.length);//函式呼叫時的實參個數,2
console.log(arguments.callee === test);//true,初始值就是正被執行的 Function 物件,用於在函式內部呼叫自身,特別是函式本身為匿名函式時,要在內部呼叫自己

console.log(arguments[2]);//undefined, arguments物件本身是個由函式呼叫時傳入的實參組成的偽陣列
}
test(10, 20);

相關文章