在调用函数时,浏览器每次都会传递进两个隐含的参数;
1.函数的上下文对象this
2.封装实参的对象arguments
function fun(){
console.log(arguments);
}
fun();
输出:
Arguments [callee: ƒ, Symbol(Symbol.iterator): ƒ]
文章目录
ARGUMENTS是什么
- arguments是一个类数组对象。它也可以通过索引来操作数据,也可以获取长度。
判断不是数组:
function fun(){
console.log(arguments instanceof Array);
console.log(Array.isArray(arguments));
}
fun();
输出:
false
false
- 在调用函数时,我们所传递的实参都会在arguments中保存
arguments.length可以用来获取实参的个数,
arguments[0]表示第一个实参
arguments[1]表示第二个实参
所以可以不使用形参,直接通过arguments获取实参,但是直接使用arguments会比较麻烦,
通常情况下还是会直接使用形参。
- arguments里边有一个属性叫做callee,
这个属性对应一个函数对象,就是当前正在指向的函数的对象。
function fun(){
console.log(arguments.callee);
console.log(arguments.callee == fun);
}
fun();
输出:
ƒ fun(){
console.log(arguments.callee);
console.log(arguments.callee == fun);
}
true