箭头函数,是一个来自ECMAScript 2015(又称ES6)的全新特性,es6允许‘箭头’定义函数,一种函数的简写方法。
var f = v => v
上面的箭头函数等同于:
var f = function (v) {
return v;
}
如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数
var f = () => 5
等同于
var f = function () {
return 5
};
除了简介外,箭头函数还有另外一个优点,就是函数体内的this的指向始终是指向定义他所在的对象,而不是指向调用他的对象
箭头函数使用,需要注意的地方:
(1),函数体内的this对象,就是定义时所在的对象,而不是使用时的对象
(2),不可以当作构造函数,也就是说不可以使用new命令,否则会抛出一个错误。因为箭头函数的this是由定义他的对象决定的,对象的构造函数是顶层,它的外层,没有this可以传进去给箭头函数使用
(3),不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用FRest参数代替
(4),不可以使用yield命令,因此箭头函数不能用作Generator函数