这两个打印的结果为什么不一样?

来源:5-1 函数扩展之默认参数

芥子1204

2019-04-27 17:22:20

function person({name="cc",age=5} = {name:"jj",age:18}){

console.log(name,age);//cc 5

}

person({});

// 

// 

const {name1="cc",age1=5} = {name1:"jj",age1:18};

console.log(name1,age1);//jj 18


写回答

1回答

好帮手慕慕子

2019-04-27

同学你好, 因为在函数里面使用解构赋值传参的时候, 会将前面的作为默认值,只有调用函数什么都不传的时候才会打印后面的结果。 你这里调用person的时候, 传了一个空对象, 所以函数里面打印结果是cc 5, 示例:可以尝试调用person()查看打印的结果

http://img.mukewang.com/climg/5cc42e6200013e3410070218.jpg

第二个就是简单的结构赋值, 所以打印的是后面的结果, 示例: 

http://img.mukewang.com/climg/5cc42f060001ee0709920162.jpg

如果帮助到了你,欢迎采纳

祝学习愉快~~~

 

0

0 学习 · 10739 问题

查看课程