답변:
그것은됩니다 destructuring 하지만, 매개 변수에 포함. 구조화가없는 동등한 것은 다음과 같습니다.
const func = o => {
var param1 = o.param1;
var param2 = o.param2;
//do stuff
}
객체 분해 할당입니다. 나처럼 ES6 객체 구조화 구문이 비슷해 보이지만 객체 리터럴 구성처럼 동작하지 않기 때문에 놀라운 사실을 발견했을 수 있습니다.
필드 및 기본 인수의 이름을 바꿀뿐만 아니라 접한 매우 간결한 형식을 지원합니다.
기본적으로 {oldkeyname : newkeyname = defaultvalue, ...}입니다. ':'는 키 / 값 구분자가 아닙니다. '='입니다.
이 언어 디자인 결정의 일부 결과는 다음과 같은 작업을 수행해야한다는 것입니다.
; ({a, b} = some_object);
추가 괄호는 왼쪽 중괄호가 블록으로 구문 분석되는 것을 방지하고 선행 세미콜론은 괄호가 이전 줄의 함수에 대한 함수 호출로 구문 분석되는 것을 방지합니다.
자세한 내용은 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment를 참조하십시오.
객체 구조화 할당 중 주요 오류는 발생하지 않습니다. 키 오류 든 '정의되지 않음'으로 자동 전파 된 다른 오류 든간에 "정의되지 않은"값으로 끝납니다.
> var {rsienstr: foo, q: bar} = {p:1, q:undefined};
undefined
> foo
undefined
> bar
undefined
>