箭头函数与普通函数的主要区别在于:1. 箭头函数语法更简洁,支持省略括号和return;2. 箭头函数无独立this,继承外层作用域的this,避免回调中this指向丢失;3. 箭头函数不绑定arguments,需用...args获取参数;4. 箭头函数不能作为构造函数,调用new会报错;5. 箭头函数没有prototype属性。因此箭头函数适合简单回调,普通函数适用于需this绑定或构造实例的场景。

箭头函数和普通函数在 JavaScript 中有一些关键区别,主要体现在语法、this 指向、arguments 对象、作为构造函数的能力以及原型属性等方面。
箭头函数使用 => 语法,适合写简单的单行表达式。
普通函数:function add(a, b) { return a + b; }
箭头函数:const add = (a, b) => a + b;
立即学习“Java免费学习笔记(深入)”;
当只有一个参数时,括号可以省略;函数体只有一条语句时,return 和大括号也可省略。
普通函数有自己的 this 值,由调用方式决定。箭头函数没有自己的 this,它会继承外层作用域的 this。
这使得箭头函数在事件回调或定时器中特别有用,避免了 this 指向丢失的问题。
例如,在对象方法中使用 setTimeout:
普通函数:const obj = { name: 'Alice', greet() { setTimeout(function() { console.log(this.name); }, 100); } } // 输出 undefined
箭头函数:const obj = { name: 'Alice', greet() { setTimeout(() => { console.log(this.name); }, 100); } } // 输出 Alice
箭头函数内部没有自己的 arguments 对象。如果需要访问参数,应使用剩余参数(...args)代替。
普通函数:function logArgs() { console.log(arguments); }
箭头函数:const logArgs = (...args) => console.log(args);
箭头函数不能通过 new 调用,没有 prototype 属性,也不支持动态创建实例。
尝试使用 new 调用箭头函数会抛出错误。
错误示例:const Fn = () => {}; new Fn(); // 报错:Fn is not a constructor
普通函数创建时会自动生成一个 prototype 属性,而箭头函数没有。
console.log(function(){}.prototype); // 有值
console.log((()=>{}).prototype); // undefined
基本上就这些。箭头函数更适合用于无复杂逻辑、不需要独立 this 的场景,比如数组遍历中的回调。而需要定义方法、构造函数或依赖 this 的情况,还是推荐使用普通函数。不复杂但容易忽略。
以上就是javascript_箭头函数与普通函数区别的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号