js中 箭头函数与普通函数区别
时间: 2023-05-23 12:01:01 浏览: 62
箭头函数和普通函数的主要区别在于 this 的指向。箭头函数的 this 指向的是定义时所在的作用域,而不是执行时的作用域。另外,箭头函数没有自身的 arguments 对象,也不能使用 new 关键字调用。
相关问题
js中普通函数和箭头函数的区别
在JavaScript中,普通函数和箭头函数之间有几个重要的区别:
1. 语法结构不同:箭头函数使用箭头(=>)而不是关键字function来定义函数。
2. this指向不同:箭头函数中的this指向的是其定义时所在的对象,而不是调用时的对象。而普通函数中的this指向的是调用该函数的对象。
3. arguments对象不同:箭头函数没有自己的arguments对象,它们使用外围函数的arguments对象。
4. 返回值不同:箭头函数可以省略return关键字,直接将表达式写在箭头函数内部,而普通函数需要使用return关键字来返回值。
5. 无法作为构造函数:箭头函数不能使用new关键字来调用,因为它们没有自己的this值,也没有prototype属性,所以无法作为构造函数使用。
需要注意的是,在使用箭头函数时需要注意this指向的问题,如果不理解this的绑定规则,可能会导致一些意料之外的错误。
箭头函数与普通函数的区别
箭头函数和普通函数在语法和功能上有一些不同:
1. 箭头函数使用箭头(=>)来定义函数,而不是使用function关键字。
2. 箭头函数可以省略function关键字、大括号和return关键字,来简化函数的定义。
3. 箭头函数没有自己的this值,它们的this值继承自外围作用域。
4. 箭头函数不能用作构造函数,不能使用new关键字来实例化对象。
5. 箭头函数不能使用arguments对象,但可以通过 rest 参数来获取函数的参数。
6. 箭头函数适用于需要简洁代码和简单函数的场景,而普通函数则更加灵活,适用于复杂的操作和需要this值的场景。
以下是箭头函数和普通函数的示例代码:
```javascript
// 普通函数
function sum(a, b) {
return a + b;
}
// 箭头函数
const sum = (a, b) => a + b;
```
```javascript
// 普通函数
const obj = {
name: 'Alice',
getName: function() {
return this.name;
}
};
// 箭头函数
const obj = {
name: 'Alice',
getName: () => this.name
};
```
总之,箭头函数是一种比较新的函数形式,它可以简化代码,但也存在一些限制。在使用时需要根据实际情况进行选择。