2016-11-19 13 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 이름의 조합의 값을 사용하여, 좌측에 정의되고있다. 이 객체 리터럴 구문을 유지하도록되어 있기 때문에

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

"할당이 양면에서 일어날 수 있습니다."할당 한 변수는 여전히 왼쪽에 있으며, 여전히 오른쪽에있는 변수에 할당 한 데이터는 없습니다. – tkausl

+2

혼란 스럽다고 생각하는 코드를 보여줄 수 있습니까? –

+4

나는이 질문의 요지를 정말로 이해하지 못한다. – undefined

답변

5

:

이 sytax에 대한 이론적 근거는, 왜 대신 사용하지 ECMA 것이 그것을 유지 개체 선언 구문과 동일 함을 감안할 때 속성을 이름은 콜론 앞에옵니다. 구문은 중첩되어 있으며, 대상이 왼쪽에 있었다면이 제대로 작동하지 않을 것입니다 : 당신의 접근 방식에서

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

콜론하지 않는 경우, 그것은

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

것 어떤 의미가 있습니다.