这句话是什么意思
var { auth = true } = meta
感觉{}
是一个对象,但是里面的格式又不太对不是应该是{ auth: true }
吗,然后又赋值meta
的值?不懂是什么意思
某草草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;
某草草2017-05-19 10:40:56
用es5来写的话, 是这样:
var auth = (typeof meta.auth!=='undefined')? meta.auth: true;
阿神2017-05-19 10:40:56
ES6的解构赋值
{ auth = true }
等于是给auth赋了一个默认值,如果meta对象里面auth属性的值是undefined,就会把默认值true赋给变量auth