JS语法里 function func({a = b} = {}){```} func方法里的参数写法怎么解释

这几天在学习vuex源码,看到logger.js文件的一处
图片描述

函数createLogger里的参数不懂这样的写法,是指参数里面的对象默认是个空对象吗,而且为什么{}里面的属性要用'='而不是':'赋值。
求指教

阅读 3k
1 个回答

ES6的解构赋值。参照下面的例子:

// a = 3, b = 4
{a, b} = {a:3,b:4};

// a = 3, b = undefined
{a, b} = {a:3};

// 设置默认值。结果:a=3, b=2
{a=1, b=2} = {a:3};

// 你的例子里面实际上是利用解构赋值给各个参数设置一个默认值。相当于:
{a=1, b=2} = {}; // 结果:a=1, b=2
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题