先看看数组解构:
function fn(){ return [1,2,3]; } var [a,b,c] = fn(); console.log(a,b,c); // 1 2 3 var [d,,f] = fn(); console.log(d,f); //1 3 var [e,] = fu(); console.log(e); //1
假设有一个能够返回对象的函数f :
function fn(){ return { a:'1', b:'2', c:'3' }; } var {a:x,b:y,c:z} = fn(); console.log(x,y,z);
假如使用的变量名和被匹配的属性名一样,即 var {a:a,b:b,c:c} = fn();
那么可以简写为:
function fn(){ return { a:'1', b:'2', c:'3' }; } var {a,b,c} = fn(); console.log(a,b,c);
错误写法:
var {x:a,x:b,x:c} = fn();
console.log(x,y,z);
正确写法
var {a:x,b:y,c:z} = fn();
console.log(x,y,z); // a b c