4

나는 파이어 폭스 Add-on Builder SDK 소스로보고되었고, 같은 상수 선언에 발견 : 나는 정보에 대한 CommonJS Modules를 찾을 수 있지만, 본 과제의 왼쪽 부분이 약간 있기 때문에, 저를 혼란 상수 선언은 최근

const { getCodeForKey, toJSON } = require("../../keyboard/utils"); 

특정 언어 여야하고, 나는 그것에 관해 아무것도 할 수 없었다.

누군가 여기에 무슨 일이 일어나고 있는지 설명하는 사양/초안을 가르쳐 줄 수 있습니까?

+1

자바 스크립트 1.7 (도마뱀 기반 브라우저)에서 함수 밴은 여러 값을 반환하고 왼쪽 부분은 기본적으로 2 개의 다른 값을 수집합니다. 또는 https://developer.mozilla.org/en/New_in_JavaScript_1.7에있는 문서를 기반으로 생각한다고 생각합니다. 해당 페이지에서 예제를 [a, b] = fn(); 하지만 그것은 그것이 FF 확장에있는 것과 비슷하다고 생각합니다. "파괴 할당 (자신의 페이지/섹션으로 병합)"제목에서 읽기 – GillesC

+0

[자바 스크립트 객체 괄호 표기법을 왼쪽에 할당] (http://stackoverflow.com/q/26999820/1048572) – Bergi

답변

5

이것은 현재 Firefox에서 사용되는 SpiderMonkey JavaScript 엔진에 의해서만 구현되는 destructuring assignment입니다.

// Destructuring assignment 
{a, b} = foo; 

// Equivalent code 
a = foo.a; 
b = foo.b; 

약간 더 정교한 예 :

// Destructuring assignment 
{name: a, address: {line1: b}} = foo; 

// Equivalent code 
a = foo.name; 
b = foo.address.line1; 

그래서 당신의 코드 예제는 해당 여기

// Destructuring assignment 
[a, b] = foo; 

// Equivalent code 
a = foo[0]; 
b = foo[1]; 

를 그리고 객체와 함께 작동하는 방법 : 그것은 배열을 작동하는 방법 여기 있습니다 ~까지 :

var utilsExports = require("../../keyboard/utils"); 
const getCodeForKey = utilsExports.getCodeForKey; 
const toJSON = utilsExports.toJSON; 

더 쉽게 쓸 수있는 방법 일뿐입니다.

+0

이제 나도 참조하십시오. 그것 *에 대한 * 이름을 아는 :) –