在使用 function 关键字定义(非箭头)函数时,可以在函数内 部访问 arguments 对象,从中取得传进来的每个参数值。arguments 对象是一个类数组对象(但不是 Array 的实例),因此可以使用中括号语法访问其中的元素(第一个参数是 arguments[0],第二个参数是 arguments[1])。而要确定传进来多少个参数,可以访问 arguments.length 属性。
- function doAdd(num1, num2) {
- arguments[1] = 10;
- console.log(arguments[0] + num2);
- }
- doAdd(10,20)//20
- doAdd()//NaN
修改命名参数也不会影响 arguments 对象,它始终以调用函数时传入的值为准
- function makeKing(name = 'Henry') {
- name = 'Louis';
- return `King ${arguments[0]}`;
- }
- console.log(makeKing()); // 'King undefined'
- console.log(makeKing('Louis')); // 'King Louis'
- console.log(makeKing('Louis111')) //'King Louis111'