这个符号()=>在Javascript中是什么意思?

Sow*_*ain 5 javascript

您可以在此代码的第一行中看到"(...)=>"符号:

const server = http.createServer((req,res) => {
       res.statusCode = 200;
       res.setHeader('content-type', 'text/plain');
       res.end('Hello World');
    });
Run Code Online (Sandbox Code Playgroud)

the*_*sti 7

它是一个箭头函数,在ES6中新定义.

箭头函数表达式具有比函数表达式更短的语法,并且不绑定它自己的this,arguments,supernew.target.箭头功能始终是匿名的.这些函数表达式最适合非方法函数,不能用作构造函数.


它们通常只是编写匿名函数的一种较短方式function () {},您可能已经熟悉它.

这些代码片段做同样的事情:

  1. setTimeout(function () {
      console.log("Hey");
    }, 1000);
    
    Run Code Online (Sandbox Code Playgroud)
  2. setTimeout(() => {
      console.log("Hey");
    }, 1000);
    
    Run Code Online (Sandbox Code Playgroud)

这意味着在你的例子http.createServer中接受一个参数,一个本身带有两个参数的函数.


例如,箭头函数不等同于function () {}匿名函数,function () {}绑定它自己的函数this.


She*_*ikz 7

这是一个ES6箭头功能:

(req, res) => {}
Run Code Online (Sandbox Code Playgroud)

相当于:

function(req, res){}
Run Code Online (Sandbox Code Playgroud)

  • 它简化了JS中的箭头功能.它们不仅仅是匿名函数的简写.你甚至可以说这个答案中的两个片段不相同. (5认同)