Home  >  Article  >  Web Front-end  >  Understanding javascript arguments objects and function parameters

Understanding javascript arguments objects and function parameters

高洛峰
高洛峰Original
2016-12-14 09:32:161074browse

viajavascript arguments object is mainly learned in the section of javascript function.

Three: argument object

In fact, the function body can receive the passed parameters through the argument object.

function box(){
return arguments[0] + '|'+arguments[1]; //得到每次参数的值
}

alert(box('caibaojian',24));

The length attribute of the arguments object can get the number of parameters.

function box(){
return arguments.length; 
}

alert(box(1,2,3,4,5)); 5

Today I mainly want to talk about some precautions in the usage process. Through an example, I will illustrate the difference between when the arguments object accesses the parameters of the function and when the row parameters define the parameters.

//code from http://caibaojian.com/js-arguments.html
function func(a,b){
b=30;
arguments[0] = arguments[1]
return a;
}
function(1,2); 30
function(1); undefined //由于函数内arguments形参改变了,a=arguments[1],arguments[1]未定义,所以a最后输出undefined

Original link: http://caibaojian. com/js-arguments.html

via detects the number of parameters. Original text comes from: http://caibaojian.com/js-arguments.html

You can also use the arguments object to detect the number of parameters of the function, referencing the attribute arguments.length That’s it.

The following code will output the number of parameters used in each function call:

function howManyArgs() {
  alert(arguments.length);
}

howManyArgs("string", 45);
howManyArgs();
howManyArgs(12);

via The above code will display "2", "0" and "1" in sequence.

Note: Unlike other programming languages, ECMAScript does not verify whether the number of parameters passed to the function is equal to the number of parameters defined by the function. Developer-defined functions can accept any number of arguments (up to 255, according to Netscape's documentation) without raising any errors. Any missing arguments will be passed to the function as undefined, and extra functions will be ignored.

Simulate function overloading

Use the arguments object to determine the number of parameters passed to the function to simulate function overloading:

function doAdd() {
  if(arguments.length == 1) {
    alert(arguments[0] + 5);
  } else if(arguments.length == 2) {
    alert(arguments[0] + arguments[1]);
  }
}

doAdd(10);	//输出 "15"
doAdd(40, 20);	//输出 "60"

via When there is only one parameter, the doAdd() function adds 5 to the parameter. If there are two parameters, the two parameters are added and their sum is returned. So, doAdd(10) outputs "15", while doAdd(40, 20) outputs "60". Original text from: http://caibaojian.com/js-arguments.html

Although it is not as good as overloading, it is enough to avoid this limitation of ECMAScript.


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:arguments in javascriptNext article:arguments in javascript