使用形式
(参数) => {执行语句}
相当于匿名函数,不能使用new来作为构造函数使用
没有自己的this,arguments,new target和 super
this
var a = 10;
var e = 5;
let obj = {
a:1,
b : function(){
console.log("b :"+this.a);
console.log(this);
},
c : ()=>{
console.log("c :"+this.a);
console.log(this);
} ,
d : function(){
console.log("d :"+this.a);
console.log(this);
return ()=>{
console.log("dd :"+this.a);
console.log("dd e :"+this.e);
console.log(this);
}
}
};
obj.b();
obj.c();
obj.d();
obj.d()();
运行结果
说明
箭头函数会向它出现的位置的父级作用域开始查找
如c(),本来由obj调用,上一级为windows
dd被d调用,上一级为obj