请问下这个是怎么传参的?

请问下这个是怎么传参的?

http://img1.sycdn.imooc.com//climg/6030c7db0913431a06040262.jpg



const logUser = userParam =>{}, 后面调用的时候为什么()都没有就能直接传参数到userParam

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

4回答
好帮手慕久久 2021-02-23 09:11:21

同学你好,对的,理解正确。

祝学习愉快!

好帮手慕久久 2021-02-22 09:00:57

同学你好,这里是箭头函数的写法,以下两种写法等价:

http://img1.sycdn.imooc.com//climg/6033020409c2223c06850259.jpg

上图的第二种写法就对应我们这里的写法,userParam就是函数logUser的参数。

祝学习愉快!

  • 提问者 一万次悲声 #1

    是因为它只传入一个参数,所以可以省略(),老师对吗?

    2021-02-23 06:58:22
好帮手慕久久 2021-02-21 13:51:27

同学你好,解答如下:

在logUser方法内,最终的参数实际上是param:

http://img1.sycdn.imooc.com//climg/6031f39309ddb20209850439.jpg

而param是将用户传入的参数与默认参数使用“...”进行了合并:

http://img1.sycdn.imooc.com//climg/6031f403093cc41a11370186.jpg

即如果用户没传入参数,就使用默认值;如果传入了参数userParam,就把它和默认参数打散合并成一个新的对象作为最终参数。

打散、合并过程,还可以参考下面的例子:

http://img1.sycdn.imooc.com//climg/6031f4520946518405980372.jpg

http://img1.sycdn.imooc.com//climg/6031f45809aefd8504930118.jpg

同学动手敲一下这个例子,看下效果,再理解下。

祝学习愉快!

  • 提问者 一万次悲声 #1

    这部分理解了,但是调用logUser(["name","Alex"])这样的时候是怎么把参数传进logUser的呢,const logUser的时候并没有加()

    2021-02-21 19:53:32
好帮手慕星星 2021-02-20 17:55:34

同学你好,课程中调用的时候并没有传参。能够输出username值是因为设置了默认参数

http://img1.sycdn.imooc.com//climg/6030dc32093f0c7d11110765.jpg

上面代码在函数中设置了默认参数defaultParam,后面与形参userParam进行展开合并,如果userParam没有传入值也没有关系,那么最后的param值也就是默认参数的值。

自己再理解下,祝学习愉快!

  • 提问者 一万次悲声 #1

    那userParamh是如何接受后续的参数的呢

    2021-02-20 19:21:56
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师