vue3 项目中 arguments 对象获取失败问题

79 篇文章 1 订阅
59 篇文章 1 订阅

问题

在 vue3 项目中 获取到的 arguments 对象与传入实参不符,打印出函数中的 arguments 对象显示如下:

在这里插入图片描述

原因

作者仔细回看代码才发现,自己一直用的是 vue3 的组合式写法,函数都是箭头函数,而箭头函数不存在 arguments 对象。那为什么不提示 undefined 而是打印出上方图片的内容呢?可能是因为虽然在箭头函数内部没有 arguments 对象,但是调用该函数的对象内部可能会存在 arguments 对象,所以就打印出了调用者的 arguments 。由于 vue3 中获取不到函数的 this ,所以并未找到函数的调用者,以上只是猜测。

解决

除了 arguments 的方式外,还可以使用 es6 的 rest 参数来实现获取所有参数列表,这里写一个简单的rest参数用法实例:

const fn = (...arr) => {
	console.log('arr:',arr)
}

fn(1,2,3) //arr:[1,2,3]

通过使用该方法就可以实现与 arguments 对象相同的功能。

提出疑问

这是一个 vue3 + ts 的项目,上方打印出的 arguments 的内容可能是出自于哪里呢🤔?欢迎有懂的朋友评论区解答,感谢!

👇觉得有帮助的朋友可以支持下作者哦,您的鼓励是我创作的最大动力,如有开发问题可联系作者
请添加图片描述

  • 17
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值