箭头函数
一.箭头函数的this是静态的,始终指向在函数声明时所在作用域下的this值
window.name = 'Window上的name'
const Name = {
name:'对象Name里的name'
}
function fn(){
console.log(this.name)
}
let fn2 = ()=>{
console.log(this.name)
}
fn();
fn2();
结果:
Window上的name
Window上的name
//通过call更改this的指向为对象Name
fn.call(Name)
fn2.call(Name)
结果:
对象Name里的name
Window上的name
由其可见,普通函数的this发生了变化,但是箭头函数的this依旧是Window,不会发生变化二.不能作为构造实例化函数
function fn (){
console.log('普通函数fn')
}
let fn2 = ()=>{
console.log('箭头函数fn2')
}
let fn3 = new fn; //这是可以的
let fn4 = new fn2; //直接报错三.不能使用arguments变量
四.箭头函数的简写
1.当形参只有一个的时候,可以省略小括号
let fn = (n)=>{
return n+n;
}
//简写
let fn = n =>{
return n+n;
}2.当函数语句只有一条的时候,可以省略花括号,此时必须省略return,因为此时的结果会自动作为返回值输出
let fn = (n)=>{
return n+n;
}
//简写
let fn = (n) => n+n;
京公网安备 11010502036488号