箭头函数是ES6引入的简洁函数写法,无独立this、arguments、super和new.target,不能作构造函数,适用于回调场景以避免this丢失,但不适用于对象方法或需继承的类方法。

箭头函数是 ES6 引入的一种简洁的函数写法,用 => 定义,本质是函数表达式的简写形式。它和普通函数最核心的区别不在语法多“酷”,而在于 没有自己的 this、arguments、super 和 new.target,且不能作为构造函数使用。
普通函数调用时,this 指向由调用方式决定(如对象方法调用指向该对象,单独调用指向全局或 undefined)。箭头函数则完全不绑定 this,它直接继承外层作用域的 this 值,且无法通过 call、apply、bind 改变。
this 丢失,比如事件处理、定时器、数组方法(map、filter)里需要访问当前对象属性时this 不指向该对象,容易出人意料箭头函数内部访问不到 arguments,想获取参数得改用剩余参数(...args)。
function() { console.log(arguments[0]); }
() => { const [first] = arguments; } ❌ 报错;应写成 (...args) => console.log(args[0]);
箭头函数没有 prototype 属性,也不能用 new 调用,否则会抛出 TypeError。
立即学习“Java免费学习笔记(深入)”;
const Person = () => {}; new Person(); // TypeError: Person is not a constructor箭头函数也不支持 new.target(检测是否被 new 调用)和 super(访问父类),所以不能用于类的方法重写或继承场景。
clickHandler = () => {}),只是绑定到实例的普通属性,不是原型方法,且无法用 super
this → 可用箭头函数(但注意内存和语义)基本上就这些。箭头函数不是“升级版”普通函数,而是定位清晰的轻量工具——适合写短小回调、保持词法作用域,但不该用来替代所有函数。用对地方很省心,乱用反而埋坑。
以上就是JavaScript箭头函数是什么_和普通函数有何不同?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号