[译]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
小白前端学习之路