Javascript ES6破坏分配

Javascript ES6破坏分配,javascript,ecmascript-6,Javascript,Ecmascript 6,功能抽屉2015chart({size='big',cords={x:0,y:0},radius=25}={}){ 控制台日志(大小、跳线、半径); //画些图表 } 抽屉2015CHART({ 连线:{x:18,y:30}, 半径:30 });此函数接受具有特定键的对象。因此,您可以基于关键帧来分解对象。使用赋值运算符(=),此函数还为每个关键点(大小、和弦、半径)提供默认值 function foo({ bar }) { console.log(bar); } 您可以像foo({bar

功能抽屉2015chart({size='big',cords={x:0,y:0},radius=25}={}){
控制台日志(大小、跳线、半径);
//画些图表
}
抽屉2015CHART({
连线:{x:18,y:30},
半径:30

});此函数接受具有特定键的对象。因此,您可以基于关键帧来分解对象。使用赋值运算符(=),此函数还为每个关键点(大小、和弦、半径)提供默认值

function foo({ bar }) {
  console.log(bar);
}
您可以像
foo({bar:42})那样调用它
并在控制台中获取
42

但是假设您想要一个默认参数,您想要
bar
baz
,但是将
baz
设为可选,默认值为
true
,您可以这样做:

function foo({ bar, baz = true }) {
  console.log(bar, baz);
}
foo({bar:42})
调用该函数将导致
42,true

现在假设我们希望所有参数都是可选的:

function foo({ bar = 42, baz = true }) {
  console.log(bar, baz);
}

foo({}); // 42, true
// however
foo(); // TypeError: Cannot destructure property `bar` of 'undefined' or 'null'.
哎呀,不能对未传递的值进行分解。因此,您也需要该参数具有默认值:

function foo({ bar = 42, baz = true } = {}) {
  console.log(bar, baz);
}

foo(); // 42, true. Yey!

因此,对于您的具体示例:

function drawES2015Chart({size = 'big', cords = {x: 0, y: 0}, radius = 25} = {}) {
  ...
}
接受一个可选参数,即具有三个可选键的对象:

  • size
    是一个可选键,默认值为
    big
  • cords
    是一个可选键,默认值为
    {x:0,y:0}
  • radius
    是一个可选键,默认值为
    25
因为所有的键都是可选的,所以我们假设空输入等同于空对象,而空对象反过来会使用所有的默认值作为键

  • 这里的
    {size='big',cords={x:0,y:0},radius=25}
    是一个
    可选对象
    大小cordsradius是带有默认值的键,而
    {/code>则作为可选键

  • 最后一个
    ={}
    默认设置
    整个参数对象
    ,以确保它不是
    解构的
    未定义的

  • 功能抽屉2015chart({size='big',cords={x:0,y:0},radius=25}={}){
    控制台日志(大小、跳线、半径);
    //画些图表
    }
    抽屉2015chart();
    函数抽屉2015CHART1({size='big',cords={x:0,y:0},radius=25}){
    控制台日志(大小、跳线、半径);
    //画些图表
    }
    //抽屉2015CHART1();//抛出类型错误
    付款人2015CHART1({})
    为了给你一个简单而清晰的画面,我们可以只看一个参数,看看压缩前的步骤。最初,代码如下所示:

    function drawES2015Chart({ size = 'big' }) {
    
    }
    
    V1:

    接下来我们可以压缩一个lil位,因为我们在这个方法中只使用
    size
    ,如下所示:

    V2:

    最后我们再次压缩设置默认值如下:

    function drawES2015Chart({ size = 'big' }) {
    
    }
    

    这可能会有帮助,我想你的意思是
    解构
    …你具体没有掌握什么?您是否尝试使用不同的值调用函数并查看输出?您是否搜索了问题“default”、“values”、“js”、“function”中的关键词?因为第一个结果很可能是解释发生了什么。阅读后,您应该更详细地解释您不理解的内容,以便我们有一个起点来回答您的问题。@Bergi,右侧空对象赋值有什么用?谢谢@Madara Uchicha。
    function drawES2015Chart({ size }) {
      var size = size || 'big';
    }
    
    function drawES2015Chart({ size = 'big' }) {
    
    }