1、概念:
箭头函数就是把function去掉,在小括号后面加=>
2、特点:
1、如果有一个参数可以省略小括号
2、如果函数返回值只有一条语句,可以省略{ }和return
3、箭头函数没有augrments内置对象
4、箭头函数不能用于创建构造函数
let Person = () => {
}
let p1 = new Person()
console.log(p1); // Person is not a constructor
5、箭头函数没有prototype属性(为undefined)
6、call,apply可以调用箭头函数,但是不能改变this指向
7、箭头函数的this指向父作用域,(调用它的地方)
3、应用:
原理:箭头函数的this指向父作用域,(调用它的地方)
var birth = 2000
var obj = {
birth: 1990,
getAge: () => {
var fn = () => {
return new Date().getFullYear() - this.birth;
};
return fn();
}
};
console.log(obj.getAge()); // 33
document.getElementsByTagName('div')[0].onclick = function () {
console.log(this);
setInterval(function () {
console.log(this);
}.bind(this), 1000) //this指向事件源
setInterval(() => {
console.log(this);
}, 1000) //this指向调用它的地方
}