javascript函数有哪些定义方式_箭头函数和普通函数有何不同?

JavaScript函数有三种定义方式:函数声明、函数表达式和箭头函数;前者具提升性且可作构造函数,后两者不可;箭头函数无this、arguments、prototype,适合回调等无需动态绑定的场景。

javascript函数有哪些定义方式_箭头函数和普通函数有何不同?

JavaScript 中函数主要有三种定义方式:函数声明、函数表达式(含匿名函数)、箭头函数。它们在语法、this 绑定、arguments 支持、new 调用能力等方面有本质区别

常见函数定义方式

函数声明:使用 function 关键字 + 函数名,会被提升(hoisted),可提前调用。

function sayHello() {  return "Hello";}

函数表达式:将函数赋值给变量,不被提升(仅变量声明提升),调用需在定义之后。

const sayHi = function() {  return "Hi";};

箭头函数:ES6 引入的简写形式,没有自己的 thisarguments,不能用作构造函数。

立即学习“Java免费学习笔记(深入)”;

const greet = () => "Hey";

箭头函数与普通函数的核心区别

this 指向不同:普通函数的 this 取决于调用方式(如 obj.method() 中 this 指向 obj);箭头函数没有自己的 this,它继承外层作用域this 值,且不可通过 call/apply/bind 修改。没有 arguments 对象:普通函数内部可访问 arguments 类数组;箭头函数中访问会报错,需用剩余参数 ...args 替代。不能作为构造函数:箭头函数没有 prototype,调用 new fn() 会抛出 TypeError;普通函数可以。没有 new.target:箭头函数中 new.target 始终为 undefined,无法判断是否被 new 调用。没有原型属性(prototype):普通函数默认有 fn.prototype,用于实现原型链继承;箭头函数没有该属性。

什么时候该用箭头函数?

适合用于:不需要独立 this、不需 arguments、不需 new 实例化 的场景,比如:

回调函数(如 array.map(x => x * 2)setTimeout(() => {...}, 100))简化短小逻辑,避免手动绑定 this(如 React 事件处理器中避免 bind(this))闭包中保持外层 this 上下文(如定时器、异步操作中引用组件实例)

什么时候必须用普通函数?

需要以下任一特性时,必须使用普通函数(function 声明或表达式):

方法需动态绑定 this(如对象方法、事件监听器需指向触发元素)要用 arguments 处理不定参数(尽管推荐用 ...rest)要通过 new 创建实例(如自定义类、工具构造器)要利用 prototype 实现继承或共享方法需要使用 yield 写 generator 函数(箭头函数不支持)

以上就是javascript函数有哪些定义方式_箭头函数和普通函数有何不同?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1544488.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月21日 15:56:58
下一篇 2025年12月21日 15:57:08

相关推荐

发表回复

登录后才能评论
关注微信