美文网首页
箭头函数与普通函数的区别?

箭头函数与普通函数的区别?

作者: 祈澈菇凉 | 来源:发表于2023-10-24 09:43 被阅读0次

箭头函数(Arrow Functions)和普通函数(Regular Functions)在语法和功能上有一些区别。以下是箭头函数和普通函数的主要区别:

1:语法简洁性:箭头函数具有更简洁的语法形式,可以帮助减少代码量。它使用箭头(=>)来定义函数,省略了function关键字和大括号。

// 普通函数
function sum(a, b) {
  return a + b;
}

// 箭头函数
const sum = (a, b) => a + b;

2:this绑定:箭头函数没有自己的this值,它会捕获(继承)所在上下文的this值。这意味着在箭头函数内部,this的值与外部的上下文保持一致,并且无法通过调用方式来改变this的指向。

// 普通函数
const obj = {
  name: "John",
  greet: function() {
    console.log("Hello, " + this.name);
  }
};
obj.greet(); // 输出 "Hello, John"

// 箭头函数
const obj = {
  name: "John",
  greet: () => {
    console.log("Hello, " + this.name); // 此处的this指向全局对象,输出 "Hello, undefined"
  }
};
obj.greet();

3:arguments对象:普通函数内部可以使用arguments对象来访问传入的参数列表。但是箭头函数没有自己的arguments对象,它会继承外部函数的arguments对象。

function sum(a, b) {
  console.log(arguments); // 输出 [1, 2]
}

const sumArrow = (a, b) => {
  console.log(arguments); // 抛出错误:Uncaught ReferenceError: arguments is not defined
};

sum(1, 2);
sumArrow(1, 2);

4:构造函数:普通函数可以用作构造函数来创建新的对象实例,而箭头函数不能使用new关键字来创建对象。

function Person(name) {
  this.name = name;
}

const john = new Person("John"); // 使用普通函数作为构造函数创建对象

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

const johnArrow = new PersonArrow("John"); // 抛出错误:PersonArrow is not a constructor

总的来说,箭头函数适用于需要简洁语法和保留外部上下文this值的情况,而普通函数则提供更多的灵活性和功能,适用于更复杂的函数需求。根据具体的场景和需求,选择适合的函数类型。

相关文章

  • 箭头函数与普通函数的区别

    箭头函数与普通函数的区别,实质是我们是否理解了箭头函数,在我刚开始接触ES6时,印象中的箭头函数与普通函数的区别就...

  • es6

    箭头函数与普通函数的区别 箭头函数是匿名函数,不能作为构造函数,不能使用new 箭头函数不绑定arguments,...

  • es6应该搞清楚的问题

    一、箭头函数与普通functon有什么区别?箭头函数可以完全代替普通functon吗? 1.箭头函数是匿名函数,不...

  • 箭头函数与普通函数的区别你真的明白吗

    箭头函数与普通函数的区别? 构造函数可以使用new 生成实例,那么箭头函数可以吗?为什么?/答: 箭头函数比普通函...

  • 常见前端面试题

    箭头函数与普通函数的区别 箭头函数语法比普通函数更加简洁,但箭头函数中没有arguments,所以形参可以使用展开...

  • es6相关

    1.箭头函数与普通函数的区别 箭头函数 let fun = () => { console.log('lala...

  • 箭头函数和普通函数的主要区别是什么?

    箭头函数和普通函数的主要区别: this的指向问题,箭头函数是不存在this的(也是箭头函数和普通函数最主要的区别...

  • 简单说 JavaScript的箭头函数

    说明箭头函数本质还是函数,我们来看看他与JavaScript中普通函数的区别,先看看写法上的区别。 写箭头函数,我...

  • 函数的扩展

    函数的扩展 箭头函数和普通函数区别箭头函数没有this对象,箭头函数的里的this始终指向定义时所在对象,普通函数...

  • 箭头函数

    二、箭头函数与普通函数的区别 1、语法更加简洁、清晰 从上面的基本语法示例中可以看出,箭头函数的定义要比普通函数定...

网友评论

      本文标题:箭头函数与普通函数的区别?

      本文链接:https://www.haomeiwen.com/subject/zhtobdtx.html