普通函数和箭头函数的区别
时间: 2023-07-18 13:19:56 浏览: 57
JavaScript 中的普通函数和箭头函数有以下区别:
1. 语法:箭头函数使用箭头符号(=>)来代替 function 关键字,语法更加简洁。
```javascript
// 普通函数
function sayHello(name) {
console.log("Hello, " + name);
}
// 箭头函数
let sayHello = (name) => {
console.log("Hello, " + name);
};
```
2. this 的指向:普通函数中的 this 指向的是调用该函数的对象,而箭头函数中的 this 指向的是定义该函数时的上下文对象。
```javascript
let obj = {
name: "John",
sayHello: function() {
console.log("Hello, " + this.name);
},
sayHelloArrow: () => {
console.log("Hello, " + this.name);
}
};
obj.sayHello(); // 输出:Hello, John
obj.sayHelloArrow(); // 输出:Hello, undefined
```
3. arguments 对象:普通函数中可以使用 arguments 对象获取函数的参数列表,而箭头函数中没有 arguments 对象,需要使用 rest 参数来获取函数的参数列表。
```javascript
// 普通函数
function sum() {
let result = 0;
for (let i = 0; i < arguments.length; i++) {
result += arguments[i];
}
return result;
}
// 箭头函数
let sum = (...args) => {
let result = 0;
for (let i = 0; i < args.length; i++) {
result += args[i];
}
return result;
};
```
总之,箭头函数是一种更加简洁、更加易读的函数表达式,但是它的特性和普通函数有所不同,需要根据具体的情况来选择使用。