📜  语法 () => {} 是什么意思 - Javascript (1)

📅  最后修改于: 2023-12-03 15:41:46.827000             🧑  作者: Mango

JavaScript中的箭头函数

JavaScript中的箭头函数是ES6中引入的一种新语法,用于更简洁地定义匿名函数。箭头函数语法使用引号包含一个函数参数列表,跟随一个箭头,后跟一个函数体。

语法格式
() => {
    // 函数体
}

箭头左侧的括号用于定义函数的参数列表(可以为空括号)。箭头右侧的花括号用于定义函数体。如果函数只有一条语句,可以省略花括号和return关键字。

(parameter1, parameter2, ..., parameterN) => expression

上面这种格式的箭头函数可以用一个简单的表达式代替函数体。这种箭头函数也被称为“简化版箭头函数”。

箭头函数的特点
没有自己的this关键字

箭头函数没有自己的this关键字,它的this是从它的外层作用域中获取的。这意味着在箭头函数内部,this的值等于函数定义时的this的值。

const obj = {
    name: 'Tom',
    sayName: function() {
        console.log(this.name);
    },
    sayNameArrow: () => {
        console.log(this.name);
    }
}

obj.sayName(); // 输出 "Tom"
obj.sayNameArrow(); // 输出 "undefined"

在上面的例子中,箭头函数sayNameArrow中的this.name为undefined,因为箭头函数内部获取到的this是全局作用域中的this,而不是obj对象。

不能使用arguments对象

箭头函数不能使用arguments对象,可以使用剩余参数来替代。

const sum = (...args) => {
    let total = 0;
    for (let i = 0; i < args.length; i++) {
        total += args[i];
    }
    return total;
}

sum(1, 2, 3, 4); // 输出10
不能用作构造函数

箭头函数不能用作构造函数,不能通过new关键字来调用箭头函数。

const Person = (name) => {
    this.name = name;
}

const tom = new Person('Tom'); // 报错!
不能使用yield关键字

箭头函数不能使用yield关键字,不能用作generator函数。

总结

箭头函数是ES6中引入的一种语法,用于更简洁地定义匿名函数。它没有自己的this关键字,不能使用arguments对象和yield关键字,也不能用作构造函数。