Arguments object of JavaScript

JavaScript gives you, within a function code, access to the arguments the function was called with: function sayHi {  if (arguments[0] == “bye”) {    return; } alert(arguments[0]); } arguments.length delivers the number of arguments: function howManyArgs {  alert(arguments.length); } howManyArgs(“string”, 45); //outputs “2” howManyArgs; //outputs “0” howManyArgs(12); //outputs “1” JavaScript code can be edited with a JavaScript editor. Unlike other programming languages, ECMAScript functions don’t validate the number of arguments passed against the number of arguments defined by the function; any developer-defined function accepts any number of arguments (up to 255, according to Netscape’s documentation) without causing an error. Any missing arguments are passed in as undefined; any excess arguments are ignored. By using the arguments object to determine the number of arguments passed into the function, it is possible to simulate the overloading of functions: function doAdd {  if(arguments.length == 1) {    alert(arguments[0] + 10); }   else if (arguments.length == 2) {    alert(arguments[0] + arguments[1]); } } doAdd(10); //outputs “20” doAdd(30, 20); //outputs “50” The function doAdd adds 10 to a number only if there is one argument; if there are two arguments, they are simply added together and returned. So doAdd(10) outputs “20” whereas doAdd(30,20) outputs “50”. It’s not quite as good as overloading, but it is a sufficient workaround for this ECMAScript limitation.