JavaScript中箭头函数和普通函数的区别和示例代码
时间: 2023-08-29 14:13:46 浏览: 145
箭头函数和普通函数的区别主要体现在以下几个方面:
1. 箭头函数没有自己的this,它的this指向定义它时所处的作用域的this值。
2. 箭头函数不能作为构造函数使用。
3. 箭头函数没有arguments对象。
下面是示例代码:
普通函数:
```javascript
function sum(a, b) {
return a + b;
}
console.log(sum(1, 2)); // 输出 3
```
箭头函数:
```javascript
const sum = (a, b) => a + b;
console.log(sum(1, 2)); // 输出 3
```
普通函数中的this指向调用该函数的对象:
```javascript
const person = {
name: '张三',
sayName: function() {
console.log(this.name);
}
};
person.sayName(); // 输出 '张三'
```
箭头函数中的this指向定义它时的作用域:
```javascript
const person = {
name: '张三',
sayName: () => console.log(this.name)
};
person.sayName(); // 输出 undefined
```
普通函数中的arguments对象可以获取所有传递给函数的参数:
```javascript
function getSum() {
let sum = 0;
for (let i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
console.log(getSum(1, 2, 3, 4)); // 输出 10
```
箭头函数中没有arguments对象,但可以使用rest参数获取所有传递给函数的参数:
```javascript
const getSum = (...args) => args.reduce((sum, num) => sum + num, 0);
console.log(getSum(1, 2, 3, 4)); // 输出 10
```
阅读全文