箭头函数相当于匿名函数,简化了函数的定义
基本语法:
var func = x => x+1;
// 等价于var func = function(x){ return x+1; }
箭头函数的其他形式:
a. 当函数无参数时,使用()括起来
var func = () => 1 + 2;
// 等价于var func = function(){ return 1+2; }
b. 当参数只有一个时,()可以省略,如上面的基本语法
c. 当参数有多个时,使用()括起来,且不可以省略
var func = (a,b) => a + b;
// 等价于var func = function(a,b){ return a+b; }
d. 当函数体为多条语句时,使用{}括起来,且不可以省略
var func = num => {if(num<0)return 0;else{return num;}}
e. 当返回值为对象字面量时,使用()将对象括起来
var func = season = > ({str:'summer',standard:'icecream'});
箭头函数的特点:
(1)this的指向问题:指向箭头函数的定义对象,而不是函数执行的上下文,这里区别于上一篇js闭包,可以改写如下
var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
var func = () => this.name;
return func();
}
};
alert(object.getNameFunc()); // 'My Object'
(2)不能使用new实例化'func'对象
(3)函数没有arguments对象,不能使用arguments访问传入参数