语法
1 | let sum = (num1,num2) => { |
特点
this 是静态的,this 始终指向函数声明时所在作用域下的 this 的值。
1
2
3
4
5
6
7
8
9
10
11let stu = {
name: '李四',
getAge(){
console.log(this);
},
getName: () => {
console.log(this);
}
}
stu.getAge();
stu.getName();剪头函数不可以作为构造函数实例化对象
1
2
3
4
5
6
7
8
9
10
11
12
13let Person = function(name,age){
this.name = name;
this.age = age;
}
let Student = (name,age) => {
this.name = name;
this.age = age;
}
let per = new Person('张三',21);
console.log(per);
let stu = new Student('张三',21); // 报错不能使用 arguments 变量
1
2
3
4
5
6
7
8let fun1 = function(){
console.log(arguments);
}
let fun2 = () => {
console.log(arguments);
}
fun1(1,2,3);
fun2(4,5,6); // 报错
缩写
当函数只有一个参数时,参数两侧的小括号可以省略。
1
2
3let add = e => {
return e + e;
}当函数体只有一条语句时,大括号可以省略,这条语句的运算结果会作为函数的返回值返回,不用写 return。
1
2let add = e => e + e;
console.log(add(10)); // 打印 20
使用场景
适用于与 this 无关的回调中,如:计时器等。