Core > arguments

関数のローカル変数arguments

by s_hiroshi

JavaScript

(function() {
    // 実引数の情報を持つargumentsオブジェクトは配列に似たオブジェクト。
    // 実引数へ配列のようにarguments[0], arguments[1], ... , arguments[N]でアクセスできる。
    // ただし配列ではないので配列のメソッドを持たない。
    console.log(arguments[0]); // foo
    // console.log(arguments.contact(['hoge'])); // TypeError contact is not a function
    console.log(arguments instanceof Array); // false
    
    // Array.slice.callでargumentsを配列へ変換
    var argumentsArray = Array.prototype.slice.call(arguments);
    console.log(argumentsArray instanceof Array); // true
    
    // argumentsArrayは配列なので配列のメソッドを使える。
    console.log(argumentsArray.concat(['hoge'])); // ["foo", "bar", "hoge"]
}('foo', 'bar'));