《JavaScript权威指南》中写道:

在函数体里,arguments.length表示传入函数的实参的个数。而函数本身的length属性则有着不同含义。函数的length属性是只读属性,它代表函数实参的数量,这里的参数指的是“形参”而非“实参”,也就是在函数定义时给出的实参个数,通常也是在函数调用时期望传人函数的实参个数。

所以检验方法如下:

//这个函数使用arguments.callee,因此它不能在严格模式下工作
  function check(arguments) {
    let actual = arguments.length;
    //实参的真实个数
    let expected = arguments.callee.length;
    //期望的实参个数
    if (actual !== expected)
    //如果不同则抛出异常
    throw Error("Expected ”+ expected +' 'arguments; got" + actual);
  }

 

相关文章:

  • 2021-10-08
  • 2022-12-23
  • 2021-11-26
  • 2022-12-23
  • 2021-09-08
  • 2022-12-23
  • 2021-07-15
猜你喜欢
  • 2022-12-23
  • 2021-09-14
  • 2022-02-07
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案