Node.js NodeJS中的正则函数和箭头函数有什么区别?

Node.js NodeJS中的正则函数和箭头函数有什么区别?,node.js,arrow-functions,Node.js,Arrow Functions,我通过视频教程学习NodeJS。我不知道箭头点函数。正则函数和箭头函数的主要区别是什么? 词法和参数 箭头函数没有自己的此或 参数绑定。相反,这些标识符像其他变量一样在词法范围内解析。这意味着在arrow函数中,this和arguments指的是arrow函数定义环境中this和arguments的值 不能使用new调用箭头函数 ES2015区分了可调用函数和可调用函数 可构造的。如果函数是可构造的,则可以使用new调用它,即new User()。如果一个函数是可调用的,则可以不使用 新建(即

我通过视频教程学习NodeJS。我不知道箭头点函数。正则函数和箭头函数的主要区别是什么?

  • 词法和参数 箭头函数没有自己的此或 参数绑定。相反,这些标识符像其他变量一样在词法范围内解析。这意味着在arrow函数中,this和arguments指的是arrow函数定义环境中this和arguments的值

  • 不能使用new调用箭头函数 ES2015区分了可调用函数和可调用函数 可构造的。如果函数是可构造的,则可以使用new调用它,即new User()。如果一个函数是可调用的,则可以不使用 新建(即正常函数调用)。 通过函数声明/表达式创建的函数既可构造也可调用。 箭头函数(和方法)只能调用。类构造函数只能被构造。 如果您试图调用一个不可调用的函数或构造一个不可构造的函数,您将得到一个运行时错误


  • 箭头函数是ES6中介绍的一种更简洁的函数编写方法。 箭头函数是匿名函数,这意味着您无法命名它

    例1:

      var addRegular = function(x, y)  { return x + y };
      var addArrow = (x, y) =>  x + y;
    
    箭头函数不绑定到this,它们不创建自己的this,因此使用了封闭this

    例2:

    //1. regular function, creates own scope 
    function Counter() {
      //set count to 0
      this.count = 0;
      var setOne  = function () {
        this.count = 1;
      };
      setOne(); 
    }
    var c = new Counter();
    console.log(c.count);// outer count will stay unchanged.
    
    //2. arrow function, uses outer this
    function Counter() {
      this.count = 0;
      var setTwo = () => {this.count = 2};
      setTwo();
    }
    var c = new Counter();
    console.log(c.count);//will be equal 2.
    
    箭头函数有一个隐式返回值,这意味着不需要写返回,这使得这些函数成为一行,如上面的示例所示