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

Understanding javascript arguments objects and function parameters

高洛峰
Release: 2016-12-14 09:32:16
Original
1132 people have browsed it

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));
Copy after login

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
Copy after login

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
Copy after login

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);
Copy after login

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"
Copy after login

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.


Related labels:
source:php.cn
Statement of this Website
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
Latest Issues
javascript - Leaking arguments
From 1970-01-01 08:00:00
0
0
0
arguments problem
From 1970-01-01 08:00:00
0
0
0
javascript - Questions about apply() and call()
From 1970-01-01 08:00:00
0
0
0
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template