箭头函数
定义函数的方式
() => {}
const fn = () =>{}
- 函数体中只有一句代码,且代码的执行结果就是返回值,可以省略大括号
//看一下传统函数
function sum(num1,num2) {
return num1+num2;
}
//箭头
const sum = (num1,num2) => num1 +num2
const result = sum(10,20);
console.log(result)
//如果形参只有一个,可以省略小括号
const fn = v => {
alert(v);
}
fn(20)
箭头函数里的this
箭头函数不绑定this关键字,箭头函数中的this,指向的是函数定义位置的上下文this
function fn() {
console.log(this);
return () => {
console.log(this)
}
}
const obj = {name: 'nannan'};
const resFn = fn.call(obj);
resFn();//nannan,nannan
箭头函数中的this拿的是定义箭头函数位置中的this
var obj = {
age :20,
say: () => {
alert(this.age)
}
}
obj,say();//undifine
这里的obj是一个对象,他不能够产生作用域,所以,age是被定义在了全局里面,指向的是window
之后再补充