没有声明式,相当于我们普通函数的定义式
var fn=(a,b)=>{
return a+b
}
var re = fn(100,200)
console.log(re)
箭头函数内部的this不符合以前函数的规则了,没有this了,es6为了跟普通函数做区别。
箭头函数的this指向离它最近的嵌套的function方法这个函数的调用者,直到顶层都没有window
如果箭头函数的形参只有一个,可以省略参数体小括号
var fn3=a=>a*a
var re2 = fn3(100)
console.log(re2);
箭头函数不能用来创建对象
因为箭头函数的this不是箭头函数的this,不是一个构造函数
箭头函数内部没有arguments
var fn=(a,...x1)=>{
console.log(a); //10
console.log(x1); //[20,30]
}
fn(10,20,30)
var arr = []
var obj = {
name:'hack',
fn:function(){
console.log(this);
}.bind(arr) //这里的bind(arr)绑定了函数中的this,让this指向arr
}
obj.fn()
然而如果是箭头函数就不行 会报错