2016-11-19 46 views
-1

爲什麼ES6決定左側分配更有意義或對解構式分配更有用?首先看,它似乎使代碼更容易出錯,現在可以根據情況在雙方進行分配。ECMASCRIPT 6爲什麼在解構時反轉雙方的任務?

let obj = { first: 'Jane', last: 'Doe' }; 
let { first: f, last: l } = obj; 
// f = 'Jane' 
// l = 'Doe' 

F和L都似乎對左定義,使用從上從右側那些VARS的左側和值VAR名稱的組合的值。

鑑於此語法時才基本原理是保持一樣的對象聲明的語法,爲什麼會ECMA不能代替已經使用:

let { f: first, l: last } = obj; 
+5

「現在分配可以發生在雙方」您分配的變量仍然在左側,您分配給這些變量的數據仍然在右側,不是? – tkausl

+2

你能展示一些你認爲令你感到困惑的代碼嗎? –

+4

我真的不明白這個問題的重點。 – undefined

回答

5

因爲它應該保持對象文字語法:屬性名字出現在冒號前面。語法應該巢,並會妥善如果目標是左側不起作用:

let {propName: [arrayElement, ...moreElements], otherName: {nestedProp: targetName}} = obj; 

在你的方法,把結腸不,這將是

let {[arrayElement, ...moreElements]: propName, {targetName = nestedProp}: otherName} = obj; 

有道理。

相關問題