功能之间有什么区别(理论)

时间:2018-03-12 09:37:25

标签: javascript typescript lambda ecmascript-6 arrow-functions

这些功能之间有什么区别:

callback(x: string[], y: string[]){
  console.log(x.concat(y).join(', '));
}

(c,d) => console.log(c.concat(d).join(', '))

2 个答案:

答案 0 :(得分:1)

从理论上看,第一个是标准函数,第二个是所谓的箭头函数

Documentation ,箭头功能与此标准中的标准功能不同

  

箭头函数表达式的语法短于函数   表达式并没有自己的this,arguments,super或者   new.target。这些函数表达式最适合非方法   函数,它们不能用作构造函数。

  • 箭头功能没有自己的this,他们从中获取它 上限范围,定义的位置。

  • 他们身体内没有arguments个物体,每个物体都有 您可以通过参数传递的标准函数和via。

  • 您可以通过箭头功能创建对象 - 请参阅第1点。

从Typescript视图,与上面相同,并且您还没有为箭头函数提供参数类型。另请注意,您在箭头函数中输入了错误的参数名称。

答案 1 :(得分:1)

第一个是TypeScript,并对输入执行类型检查。

第二个是JavaScript并抛出错误,因为参数中的变量名称与函数中使用的变量名称不匹配。 (抛开那个错误,它做同样的事情,只是没有类型检查)。