<code>
function obj() {
return {x:5}
};
function mon({x=0,y=0}=obj()){
return [x,y];
};
let a=mon({x:3,y:8});
let b=mon({x:3});
let c=mon({});
let d=mon();
//a=[3,8];b=[3,0];c=[0,0];d=[5,0]
</code>
執(zhí)行過程:1> 判斷<code>mon</code>的實(shí)參是否為<code>undefined</code>膀值,如果是煌抒,則 <code>mon</code>的參數(shù)取值為<code>obj()</code>,也即是<code>{5:0}</code>。
如果不是<code>undefined</code>楞件,那么參數(shù)就是<code>mon</code>的實(shí)參。
2> 代碼中<code>{x=0,y=0}=obj()</code>中裳瘪,<code>{x=0,y=0}</code>是給參數(shù)變量<code>x</code>土浸,<code>y</code>指定的默認(rèn)值,實(shí)參中如果相應(yīng)的鍵不是<code>undefined</code>彭羹,
就取實(shí)參的值黄伊,否則去形參的值。
eg: <code>let a=mon({x:3,y:8})</code>中派殷,實(shí)參<code>{x:3,y:8}!=undefined</code>还最,所以會(huì)<code>{x=0,y=0}={x:3,y:8}</code>,然后在判斷變量<code>x</code>墓阀,<code>y</code>的值都不是<code>undefined</code>,
所以最終的參數(shù)為<code>{x:3,y:8}</code>拓轻。
有說的不對(duì)地方歡迎各位指正斯撮!
<blockquote>ECMAScript6入門.pdf</blockquote>