MoonCheung

MoonCheung

人生路漫漫,何曾有坦途。:)

箭头函数和普通函数区别

  1. 关于箭头参数:
    1. 如箭头函数没有参数,直接写一个空括号即可;
    2. 如箭头函数的参数只有一个,需要括号包裹参数;
    3. 如箭头函数的参数有多个,将参数依次用逗号 (,) 分隔,包裹在括号中即可;
  2. 关于箭头函数体:
    1. 箭头函数没有普通函数function关键字
    2. 如箭头函数的函数体只有一句代码,就是简单返回某个变量或者返回一个简单的 JS 表达式,可省去函数体花括号{}的
    3. 如箭头函数的函数体只有一句代码返回一个对象的话,需圆括号来包裹对象的
    4. 如箭头函数的函数体只有一条语句并且不需要返回值(最常见是调用一个函数),可给这条语句前面加一个 void 关键字
  3. 区别在于:
    1. 箭头函数本质:
      1. 语法更加简洁,清晰;
      2. 箭头函数就是匿名函数;
      3. 箭头函数不会创建自己 this,会从自己作用域链外层继承 this;因为箭头函数中 this 的指向在被定义时候已确定,永远改变不了的
    2. 普通函数本质:
      1. new 的本质生成新对象,将该对象的_proto_(原型链) 指向函数的 prototype (原型),再执行 call 方法,最后将新对象赋值给已声明变量
      2. 在其作用域链中创建 this 执行上下文,且优先级 new > bind > obj > window
      3. 可声明几个函数,比如函数表达式,函数生命,匿名函数
加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。