定义函数
let fn = (a,b) => { return a+b; }
特点:
- 箭头函数的this是静态的,this始终指向函数声明时所在作用域下的this值
function getValue(){ console.log(this.value); } let getValueJ =() => { console.log(this.value); } window.value = "test"; const TEST = { value: "TEST"; } getValue(); getValueJ(); //输出值均为test //call方法调用 getValue.call(TEST); getValueJ.call(TEST); //输出值:getValue:TEST // getValueJ:test
- 不能作为构造器实例化对象
let Person = (name, age) => { this.name = name; this.age = age; } let me = new Person("tao",25); console.log(me); //控制台报错
- 不能使用 arguments 变量
-
- arguments变量:类似数组的对象(具有数组的属性却不是一个真数组)
let fn = () =>{ console.log(arguments); } fn(1,2,3); //输出结果:控制台报错
- 箭头函数简写
-
- 省略小括号,当形参有且只有一个的时候
let pow = n => { return n*n; }
-
- 省略大括号,当代码只有一条语句的时候,此时return必须省略,且语句执行结果就是函数返回值
let pow = (n) => n*n;
箭头函数使用场景
- 箭头函数适用于与this无关的回调场景。 例: 定时器,数组方法回调
- 事件回调,对象方法等不适用于箭头函数,即与this有关的回调