[译]Javascript 参数(arguments)对象

本文翻译youtube上的up主kudvenkat的javascript tutorial播放单

源地址在此:

https://www.youtube.com/watch?v=PMsVM7rjupU&list=PL6n9fhu94yhUA99nOsJkKXBqokT3MBK0b

Javascript 参数(arguments)对象是一个在所有函数中都可用的本地变量.其包含了所有传给函数的参数,并且像数列一样排着序.参数对象的长度就是传给函数的参数个数.

JavaScript 参数对象例子:

function printArguments() 
{
    document.write("Number of arguments = " + arguments.length + "<br/>")
    for (var i = 0; i < arguments.length; i++) 
    {
        document.write("Argument " + i + " = " + arguments[i] + "<br/>");
    }
    document.write("<br/>");
}

printArguments();
printArguments("A", "B");
printArguments(10, 20, 30);

可以将任意个数的参数传给Javascript函数吗

可以的.你可以传任意个数的参数给任意Javascript函数.所有的参数将会被存在参数对象中

function addNumbers() 
{
    var sum = 0;
    document.write("Count of numbers = " + arguments.length + "<br/>")
    for (var i = 0; i < arguments.length; i++) 
    {
        sum = sum + arguments[i];
    }
    document.write("Sum of numbers = " + sum);
    document.write("<br/><br/>");
}

addNumbers();
addNumbers(10, 20, 30);

参数对象只在函数内部有效.在函数外部试图获得参数对象的话只会导致undefined错误.尽管你可以像数列一样给arguments排序,但是其并不是数列.除了长度属性以外,参数对象并没有其他数列所拥有的属性.比如数列所拥有的sort()方法,参数对象并没有.但是,你可以轻易地将参数对象转换成一个数列.

将Javascript参数对象转换成一个数列

function numbers() 
{
    var argsArray = Array.prototype.slice.call(arguments);
    argsArray.sort();
    document.write(argsArray);
}

numbers(50, 20, 40);

Output : 20, 40, 50

原文地址:https://www.cnblogs.com/otakuhan/p/7786845.html