Skip to content

语法

javascript
let sum = (num1,num2) => {
    return num1 + num2;
}

特点

  1. this 是静态的,this 始终指向函数声明时所在作用域下的 this 的值。

    javascript
    let stu = {
        name: '李四',
        getAge(){
            console.log(this);
        },
        getName: () => {
            console.log(this);
        }
    }
    stu.getAge();
    stu.getName();

  2. 剪头函数不可以作为构造函数实例化对象

    javascript
    let 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); // 报错

  3. 不能使用 arguments 变量

    javascript
    let fun1 = function(){
        console.log(arguments);
    }
    let fun2 = () => {
        console.log(arguments);
    }
    fun1(1,2,3);
    fun2(4,5,6); // 报错

缩写

  1. 当函数只有一个参数时,参数两侧的小括号可以省略。

    javascript
    let add = e => {
        return e + e;
    }
  2. 当函数体只有一条语句时,大括号可以省略,这条语句的运算结果会作为函数的返回值返回,不用写 return。

    js
    let add = e => e + e;
    console.log(add(10));   // 打印 20

使用场景

适用于与 this 无关的回调中,如:计时器等。

基于 MIT 许可发布