函数特殊知识小点:参数、this、函数名

64 阅读1分钟

arguments 的特殊项⚠️

  • 反映实际传入的参数的类数组,arguments.length 表示实际传入的参数数量。需要与形参做区别。
  • 箭头函数中没有预设arguments!!!,arguments 值可能是外部变量或普通变量。

参数是按顺序初始化的⚠️

  • 参数引用参数:后面设定的参数,可以引用前面的参数作为默认值,反之不行。

new.target

  • 如果函数是正常调用的,则new.target的值是undefined;如果是使用new关键字调用的,则new.target将引用被调用的构造函数。

箭头函数中的 this⚠️

  • 在箭头函数中,this引用的是定义箭头函数的上下文

函数名的特殊

  • 不同的声明方法会有不同的函数名
  • bind, get/set访问器也会有特殊的函数名前缀。
function foo() {} // name: foo
let bar = function() {}; // name: bar
let baz = () => {}; // name: baz
let fn = new Function(); // name: anonymous

其他

重载:可以通过检查参数的类型和数量,然后分别执行不同的逻辑来模拟函数重载。但是JS中不存在这个概念。