2016-09-19 2 views
5
할 더

:과 같이,수출 화살 기능 또는 기본 기능?

export const foo =() => 'bar' 

또는 일반 함수를 export : 그래서처럼 const 화살표 함수를 export

export function baz() { 
    return 'bar'; 
} 

그들은과 같이 컴파일 :

exports.baz = baz; 
function baz() { 
    return 'bar'; 
} 
var foo = exports.foo = function foo() { 
    return 'bar'; 
}; 

const/arrow 함수 조합을 사용하면 여분의 변수 (foo)가 선언되어 불필요한 여분 인 것처럼 보입니다. 간단한 함수 선언을 보자.

+0

이것은 ECMAScript 6가 ECMAScript 5로 컴파일 된 것입니까? – qxz

+0

ES6 코드가 바벨과 함께 ES5로 옮겨 졌다고 가정 할 때 이것은 사실이 아닐 수 있습니다. – estus

+0

예, 명확하지 않은 것에 대해 사과드립니다. ES6는 Babel을 통해 ES5로 옮겨 가고 있습니다. – abustamam

답변

6

차이가 아주 작습니다. 둘 다 변수를 선언합니다. 함수 선언 이론적 화살표 기능 a function expression, not a function declaration이다

  • 덮어 쓸 수 있고, 할당 순환 종속성 문제를 일으킬 수있는 반면

    • const 변수, 모듈 내에 일정한
    • 화살표 기능 못해 be a constructor or use a dynamic this
    • 블록 기능을 사용하는 경우 간결한 본문을 사용하면 길이가 짧고 문자 길이가 길면 화살표 기능이 더 짧아집니다.
  • +1

    구조적으로 말하면, 함수가 생성자 또는'this'를 필요로하지 않는 한'const' 변수는 괜찮을까요? 당신은 포인트 넘버 2에서 정교 할 수 있습니까? – abustamam