概述
一、基本点
arguments
是一个类数组对象,包含着传入函数中的所有参数。主要用途是保存函数参数,但这个对象还有一个名叫callee
的属性arguments
的callee
属性是一个指针,指向拥有这个arguments
对象的函数。- 函数的内部属性
arguments
的作用: 用于存储调用函数的时候传入的所有实参, arguments
是一个类数组对象,他的元素个数取决于实参列表, 和形参无关;arguments.callee()
表示所在函数的引用地址,表示调用函数本身。
function sum(){
console.log(arguments); /*打印出Arguments数组对象,Arguments(3) [10, 30, 50, callee: ƒ, Symbol(Symbol.iterator): ƒ]*/
let result=0;
for(let i=0;i< arguments.length;i++){
result+=arguments[i]
}
console.log(result) // 打印实参的相加结果,90
}
sum(10,30,50) /* 调用结果, 打印类数组arguments,arguments上有一个属性callee,是一个函数- 和90 */
function fn(num1,num2){
arguments[1] = 10;
console.log(arguments[0] + num2);
}
fn(10,20); /* 将实参列表中的第二个元素赋值为了 10,此时形参列表也会随之改变,即此时,num2也变为了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) /* 打印结果: num2: undefined NaN ;因为 此时num2的值为undefined, 10+undefined的结果为NAN*/
参考链接:https://www.cnblogs.com/yingyingh5/p/7684984.html
最后
以上就是内向唇膏为你收集整理的函数的内部属性————Arguments对象的全部内容,希望文章能够帮你解决函数的内部属性————Arguments对象所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复