Javascript Function arguments

  • 80
  • 0
  • 2018-06-23

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" 就可以避開了