箭头函数的格式
// ES5
var selected = allJobs.filter(function (job) {
return job.isSelected();
});
// ES6 箭头函数
var selected = allJobs.filter(job => job.isSelected());
// ES6
$("#confetti-btn").click(event => {
playTrumpet();
fireConfettiCannon();
});
1、要编写具有多个参数(或没有参数或默认值或解构参数)的函数,在参数列表周围添加括号。
2、带有块体的箭头函数不会自动返回值。请使用return声明。
3、使用箭头函数创建普通对象时有一点需要注意。始终将对象括在括号中:
this指向
箭头函数没有自己的this值。this箭头函数内部的值始终从封闭范围继承。
对于将使用object.method()语法调用的方法,请使用非箭头函数。这些函数将从调用者那里获得有意义的 this值。其他所有内容都使用箭头功能。
{
...
addAll: function addAll(pieces) {
var self = this;
_.each(pieces, function (piece) {
self.add(piece);
});
},
...
}
// ES6
{
...
addAll: function addAll(pieces) {
_.each(pieces, piece => this.add(piece));
},
...
}
箭头函数与普通函数得区别
箭头和非箭头函数之间还有一个小的区别:箭头函数也没有自己的arguments对象。
普通函数:
1、函数作为全局函数被调用时,this指向全局对象
2、函数作为对象中的方法被调用时,this指向该对象
3、函数作为构造函数的时候,this指向构造函数new出来的新对象
4、还可以通过call,apply,bind改变this的指向
1、箭头函数没有this,函数内部的this来自于父级最近的非箭头函数,并且不能改变this的指向。
2、箭头函数没有super
3、箭头函数没有arguments
4、箭头函数没有new.target绑定。
5、不能使用new
6、没有原型
7、不支持重复的命名参数。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。