有几个疑问
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
//补充代码
function Add({
a,
b = "bb",
c = 5
}) {
console.log('a:' + a);
console.log('b:' + b);
console.log('c:' + c);
}
new Add({
a: true,
b: 'a',
c: 8
});
</script>
</body>
</html>
1、为什么形参里面给默认值必须使用‘=’,用了‘:’就会报错?而实参必须用‘:’?实参和形参不都是对象吗?这个错误信息是在说什么意思呢?翻译说:无效的析构分配目标,不太理解。
2、实参里面为什么必须给值呢?不写值也会报错,会说未被定义?不是说实参里面没有给值的就使用形参的默认值吗?
【
new Add({
a: true,
b,
c: 8
});
】
正在回答
同学你好,关于你的问题,回答如下:
1、是都是对象,但是实参这里是声明的对象,声明对象必须使用冒号(:),而形参这里是解构的对象,等号是设置的默认值,就是若是调用的时候,传递的对象参数中没有这个属性,那么就使用默认值。设置默认值,是需要使用等号的(=)。
报错信息就是属性的结构不合理,写法是错误的哦。
2、es6中,只写一个值表示属性与属性值都是这里,所有这里表示属性与属性值都是b,而b不是变量,作为属性值的时候,需要使用引号。所有会报错。
默认值这里,是指没有设置属性的时候,比如,如下:
传递的没有sex这个属性,所有使用默认的。
如果我的回答帮助了你,欢迎采纳,祝学习愉快~
- 参与学习 人
- 提交作业 239 份
- 解答问题 10739 个
本阶段带你深入前端开发的肌理,通过ES6基础知识和前端主流高级框架的学习,助你快速构建企业级移动webAPP应用,进入职场的终极battle
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星