搜尋

首頁  >  問答  >  主體

javascript - es6 物件語法

這句話是什麼意思

var { auth = true } = meta

感覺{}是一個對象,但裡面的格式又不太對不是應該是{ auth: true }嗎,然後又賦值meta的值?不明白是什麼意思

PHP中文网PHP中文网2748 天前575

全部回覆(6)我來回復

  • 某草草

    某草草2017-05-19 10:40:56

    這裡是ES6中物件解構

    //对象的解构也可以指定默认值。
    var {x = 3} = {};
    x // 3
    
    var {x, y = 5} = {x: 1};
    x // 1
    y // 5
    
    var {x:y = 3} = {};
    y // 3
    
    var {x:y = 3} = {x: 5};
    y // 5
    
    var { message: msg = 'Something went wrong' } = {};
    msg // "Something went wrong"
    

    這類問題,希望你透過 babeljs.io 官方線上編譯器,以便以後查看

    // 上面的代码,可以这样理解
    var auth = meta.auth === undefined ? true : meta.auth;

    回覆
    0
  • 習慣沉默

    習慣沉默2017-05-19 10:40:56

    解構賦值。

    es6的新功能。

    回覆
    0
  • 迷茫

    迷茫2017-05-19 10:40:56

    外面這個是解構賦值

    裡面這個是給預設值

    回覆
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-19 10:40:56

    雷雷

    回覆
    0
  • 某草草

    某草草2017-05-19 10:40:56

    用es5來寫的話, 是這樣:

    var auth = (typeof meta.auth!=='undefined')? meta.auth: true;

    回覆
    0
  • 阿神

    阿神2017-05-19 10:40:56

    ES6的解構賦值

    { auth = true } 等於是給auth賦了一個預設值,如果meta物件裡面auth屬性的值是undefined,就會把預設值true賦給變數auth

    回覆
    0
  • 取消回覆