argument中的形参、实参以及参数的值传递和引用传值
形参:函数定义的参数。
实参:函数调用时实际传递参数。
参数匹配是从左向右进行匹配的,如果实参个数小于形参,后面的参数对应赋值undefined。
实参的个数如果多于形参的个数,可以通过argument访问。
参数的值传递和引用传值
1)引用传递的参数,是传递引用对象的地址。函数内部修改会影响传递参数引用对象
2)值传递的是一个值类型的副本,函数内部不会影响外部传递的参数变量
argument特点
1、arguments只在函数中存在。(箭头函数除外)
2、arguments是一个伪数组。
3、是一个集合,存储了我们传入的所有形参。
4、arguments具有length,可以通过下标访问。
(function(a){
console.log(arguments)
})(1);
!注意:伪数组不能使用数组的方法
arguments方法
1、arguments.callee()方法
这个方法可以调用方法本身
补充:伪数组调用数组的方法
转换为真正的数组
使用展开运算符
function fn (){
let arr = [...arguments];
// arr 就是一个数组
}
fn(1,2,3)
借用数组的方法
function fn (){
Array.prototype.push.call(arguments,4,5)
// 借用 数组的方法 末尾添加一个元素
console.log(arguments);
};
fn(1,2,3)