箭头函数
箭头函数(arrow function)不具备this 和arguments; 所以自己没有this就找上一级的this;
如何更改this指向
1、call 、 apply 、bind
2、var that = this (常用)
3、箭头函数 =>
如何确定this是谁
看谁调用的, .前面是谁this就是谁(谁调用函数,里面的this指向谁)
箭头函数格式
function a(b){
return b + 1;
}
//let a = function(b){
// return b + 1;
//}
//1、在箭头函数中没有function关键字,
let a = (b) => {
return b + 1;
}
//2、参数放在()里,一个参数可以不用()
//3、()和{}之间有一个箭头
let a = b => {
return b + 1;
}
//4、如果没有{}可以直接写返回值,有{}的话必须写return
let a = b => b + 1;
例子:
function a(b){
return function (c){
return b + c
}
}
a(1)(2); //执行后得3
//改为箭头函数为
let a = (b) => {
return (c) => {
return b + c;
}
}
//简化写法为(一个参数可以省略())
let a = b => {
return c => b + c;
}
//再简化为(没有return 可以省略{})
let a = b => c => b + c;
两个箭头及两个箭头以上(>= 2个箭头)叫高阶函数
####闭包
闭包:函数执行的一瞬间叫闭包,执行完就销毁了