箭头函数的特点
1,有一个形参可以省略小括号
2、函数体中return后只有一条语句 可以省略return 和{}
3、箭头函数没有arguments内置对象
4、箭头函数不能作为构造函数
5、箭头函数没有原型属性
6、箭头函数通过apply()和call()调用不会改变this的指向
7、箭头函数的this指向父作用域(定义它的地方)
1,有一个形参可以省略小括号
/* let fn=(x)=>{
console.log(x);
}
fn(1) */
let fn=x=>{
console.log(x);
}
fn(1)
2、函数体中return后只有一条语句 可以省略return 和{}
let arr=[1,2,3]
console.log(arr.filter((item)=>item>2));//[3]
3.箭头函数没有arguments内置对象
/* function fn_1(){
console.log(arguments);//Arguments [callee: ƒ, Symbol(Symbol.iterator): ƒ]
}
fn_1() */
(()=>{
console.log(arguments);//报错
})()
4,箭头函数不能作为构造函数
/* function Car (name,play){
this.name=name,
this.play=play
}
var car =new Car('库里南',function(){
console.log(this.name);
})
console.log(car);//Car {name: '库里南', play: ƒ} */
let Obj=(name,play)=>{
this.name=name,
this.play=play
}
var car =new Obj('库里南',function(){
console.log(this.name);
})
console.log(car);//Obj is not a constructor
5, 箭头函数没有原型属性
// function result(){
// }
// result()
// console.log(result.prototype);//{constructor: ƒ}
let result=()=>{
}
result()
console.log(result.prototype);//undefined
6、箭头函数通过apply()和call()调用不会改变this的指向
7.箭头函数的this指向父作用域(定义它的地方)
var name='hahha'
var obj={
name:'小八',
play:function(){
// console.log(this.name);
var name='迪迪'
var demo=()=>{
console.log(name);
console.log(this.name);
}
demo.apply(this)
}
}
obj.play()