2015-01-21 63 views
-3

我注意到,在一些功能上的參數對象用於:JavaScript:爲什麼我們在函數中使用** arguments **對象?

function fn(arg1, arg2) 
{ 
    console.log(arguments[0]) 
} 

fn(1, 2); // 1 

爲什麼它是有用的?

+0

我們可以將它用於未知參數,所以... – 2015-01-21 05:59:46

+0

'arguments'對象有點特別,但它最常用於可變數目的參數。還有一些有用的屬性,如'caller'和'callee'。更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments – Brennan 2015-01-21 06:01:52

回答

2

在你的例子中,它沒有用,也不是一個好主意。

function sum() { 
    var total = 0; 
    for (var i = 0; i < arguments.length; i += 1) { 
     total += arguments[i]; 
    } 
    return total; 
} 

console.log(sum(5, 6, 7, 8)); // 26 

注意ES6允許使用rest parameters這將在大多數情況下,更爲有用,其中arguments如今常用:

當你想,可以接受的參數數目不定的功能它可以是有用的
function sum(...values) { 
    return values.reduce(function (prev, cur) { 
     return prev + cur; 
    }, 0); 
} 
+1

好例子... – 2015-01-21 06:00:30

相關問題