Javascript Arguments
Javascript Function 裡有個Arguments的隱含物件。
它可以將外部傳入的參數對應進Arguments裡(0...n-1)。
文章或書都會強調它是Array-Like的物件,除了Length屬性外,使用其他array的function像是push()就會出現錯誤。
就是要記住,它不是Array就是了。
另外,在忍者Javascript開發技巧探秘書中有提到要小心的點。
Arguments 具有alias特性
var f = function(a, b) {
console.log(a + ' ' + arguments[0]);
arguments[0] = 'change';
console.log(a + ' ' + arguments[0]);
};
f('A', 'B');
//output:
//A A
//change change
當arguments[0]變動時, a的變數也會更著變動。
書中是說使用嚴格模式可以避免alias的情況
在最上方加上"use strict" 就可以避開了