老师帮看一下这个问题?关于默认参数跟传入参数

老师帮看一下这个问题?关于默认参数跟传入参数

相关代码:

this.options = Object.assign({}, default, options);


https://img1.sycdn.imooc.com//climg/618783930994e18710890437.jpg

截图是课程的。代码那里是之前的

这两个对默认参数和传入参数判定哪个比较好?

正在回答

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

1回答

同学你好,这两种方式都可以实现为对象的属性指定默认值,不过使用Object.assign()方法更简单一些,不需要写很多的三目运算。需要注意的是,Object.assign()方法实行的是浅拷贝,而不是深拷贝,如图

https://img1.sycdn.imooc.com//climg/61878ff3099d792e14470494.jpg

所以,使用Object.assign()方法为对象属性指定默认值时,需要注意一下这个问题。

祝学习愉快!

  • 三目运算是属于深克隆吗?就是参数里边还有{}的情况下,使用三木运算才能避免以上问题吗?

    2021-11-07 16:47:19
  • 同学你好,三目运算其实就是类似于 index = defaultIndex,即将一个变量的值赋给另一个变量,像这样通常都是浅克隆,实现深克隆通常需要使用递归,前面的课程讲过深克隆的实现,同学可以去翻看一下

    像这样只是为对象属性指定默认值,而不是要实现深克隆,一般只要注意一下这个问题就行。

    祝学习愉快!

    2021-11-07 17:29:36
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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