let foo3 = function() { console.log('hahawoshi foo3') } foo3(); let foo4 = () => { console.log('haha woshi foo4') } foo4(); //箭头函数this 是静态的,this始终指向函数声明时所在的作用域下的this 的值 //call 能改变this的指向 function getName() { console.log(this.name); } let getName2 = () => { console.log(this.name); } window.name = '哈哈'; let people = { name: '张三', age : 18 } getName();//哈哈 getName2();//哈哈 getName.call(people);//张三 普通函数 this指向当前声明的函数 getName2.call(people);//哈哈 箭头函数 this 指向函数声明时所在作用域下的this的值
2.不能作为构造实例化对象
3.不能使用arguments变量
let f = () => {
console.log(arguments);
}
f(1);//报错
let f2 = function() {
console.log(arguments);
}
f2(1);//arguments...
let arrx = [1,66,54,78,66,3,1]
const res5 = arrx.filter(function(item) {
if(item % 2 === 0) {
return true;
} else {
return false;
}
})
res6 = arrx.filter(item => {
if(item%2===0) {
return true;
} else {
return false;
}
})
res6 = arrx.filter(item => item % 2 ===0)
console.log(res6,'res6');
箭头函数适合与this 无关的回调,定时器,数组的方法回调
箭头函数不适合与this 有关的回调,事件回调