JS:函数参数声明中的花括号是什么意思?

der*_*ble 5 javascript reactjs babeljs redux

我一直在关注使用Redux设置React 这个教程,我注意到了一些我不熟悉的语法.函数参数定义里面的花括号是做什么的?

例:

function Stream({ tracks = [], onAuth }) { #what is going on here?
  return (
    <div>
      ... #component stuff here
    </div>
  );
}
Run Code Online (Sandbox Code Playgroud)

这个React具体吗?或者这与Babel或其他图书馆有关?我是这个技术的新手,所以不确定发生了什么.

Car*_*ate 5

它看起来像解构语法,但我不知道javascript有解构.

如果就是这样,该函数期望一个具有tracks字段的对象(但如果该对象没有,则可以默认为空列表),以及onAuth默认为的字段undefined.它基本上是一种访问传递对象字段的更简洁的方法.