关于函数参数赋值默认值,解构赋值问题
来源:5-1 函数扩展之默认参数
soso_crazy
2019-06-30 23:13:10
function m1({ x = 0, y = 0 } = {}) { return [x, y] } function m2({ x, y } = { x: 0, y: 0 }) { return [x, y] } // 函数没有参数的情况下 m1() m2() // x和y都有值的情况下 m1({ x: 3, y: 8 }) m2({ x: 3, y: 8 }) // x有值 m1({ x: 3 }) m2({ x: 3 }) // x和y都没值 m1({}) m2({}) m1({ z: 3 }) m2({ z: 3 })
//function m1和m2的写法的区别是什么?
函数参数的解构赋值与函数调用时的参数有什么联系?为什么m1就有解构赋值而m2没有?
为什么m1和m2的写法会导致每种情况有区别?
2回答
好帮手慕夭夭
2019-07-01
你好同学,设置默认值是es6规定的语法哦。另外,第二行没有写错,因为函数的参数就是一个对象,并且后面调用时老师已经详细标注了函数的形参,在本段代码中说的对象指的就是参数。和同学说的是一个意思哦。
祝学习愉快,望采纳。
好帮手慕夭夭
2019-07-01
你好同学,同学的几个问题实际上都是围绕着两个函数的区别产生的疑惑,老师在代码中加了注释,同学参数理解一下:
祝学习愉快,望采纳。
相似问题