在调用函数时,浏览器每次都会传递进两个隐含的参数:

    1. 函数的上下文 this
    2. 封装实参的对象 arguments

    arguments 是一个类数组对象,它也可以通过索引来操作数据,也可以获取长度

    1. function fun(){
    2. console.log(arguments);
    3. }
    4. fun("孙悟空",18);

    在调用函数时,我们所传递的 实参都会在 arguments 中保存
    arguments.length 可以用来获取实参的长度

    1. function fun(){
    2. console.log(arguments.length);
    3. }
    4. fun("孙悟空",18); // 2

    即使不定义形参,也可以通过 arguments 来使用实参

    1. function fun(){
    2. // console.log(arguments.length);
    3. console.log(arguments[0]); // 孙悟空
    4. console.log(arguments[1]); // 18
    5. }
    6. fun("孙悟空",18);

    arguments有一个属性 callee

    • 这个属性对应一个函数对象,就是当前正在执行的函数对象
      1. function fun(){
      2. console.log(arguments.callee); // 指向的是当前正在执行的函数对象
      3. console.log(arguments.callee === fun); // true
      4. }
      5. fun("孙悟空",18);