一、基本点
arguments
是一个类数组对象,包含着传入函数中的所有参数。主要用途是保存函数参数,但这个对象还有一个名叫callee
的属性arguments
的 callee
属性是一个指针,指向拥有这个arguments
对象的函数。- 函数的内部属性
arguments
的作用: 用于存储调用函数的时候传入的所有实参, arguments
是一个类数组对象,他的元素个数取决于实参列表, 和形参无关;arguments.callee()
表示所在函数的引用地址,表示调用函数本身。
function sum(){
console.log(arguments);
let result=0;
for(let i=0;i< arguments.length;i++){
result+=arguments[i]
}
console.log(result)
}
sum(10,30,50)
function fn(num1,num2){
arguments[1] = 10;
console.log(arguments[0] + num2);
}
fn(10,20);
分析:
每次执行fn()这个函数,num2的值都会被修改为10 ,因为arguments对象中的值会自动反映到num2,但是,num2和arguments[1]的内存空间是不同的。
如果fn()只传入了一个参数,那么修改arguments[1]是没有任何效果的,因为arguments的长度已经被确定为1了,没有第二个参数。
function fn22(num1,num2){
arguments[1]=10;
console.log('num2:',num2);
console.log(arguments[0]+num2)
}
fn22(10)
参考链接:https://www.cnblogs.com/yingyingh5/p/7684984.html