我使用视频教程学习节点js。我没有得到箭头功能。常规功能和箭头功能之间的主要区别是什么? enter image description here
答案 0 :(得分:2)
Lexical this and arguments 箭头功能没有自己的这个或 参数绑定。相反,这些标识符在词法范围内像任何其他变量一样被解析。这意味着在一个箭头函数中,这个和参数引用了这个和环境中的参数的值,箭头函数定义在
无法使用new调用箭头函数 ES2015区分可调用的函数和函数 构建能够。如果函数是可构造的,则可以使用new调用它,即new User()。如果函数是可调用的,则可以不调用它 新的(即正常函数调用)。 通过函数声明/表达式创建的函数既可构造又可调用。 箭头函数(和方法)只能调用。类构造函数只能构造。 如果您尝试调用不可调用的函数或构造不可构造的函数,则会出现运行时错误。
答案 1 :(得分:2)
箭头函数是一种更简洁的函数编写方式,在ES6中引入。 箭头函数是匿名函数,这意味着您无法命名它。
示例1:
var addRegular = function(x, y) { return x + y };
var addArrow = (x, y) => x + y;
箭头函数不绑定到它,它们不会创建它们自己的,因此封闭它就可以使用了。
示例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.
箭头函数有一个隐式返回值,这意味着不需要写返回,这使得这些函数成为单行,如上例所示。