2017-03-02 1 views
-1

기본 매개 변수를 객체처럼 인수 배열에 할당되지 않은 인수에 정의되어 있지 .
변경 될 예정입니까?ES6의 기본 매개 변수는

+0

향후 표준에서 발생할 일에 대한 의견을 묻습니다. (당신이 그들에게 스펙에 대한 non-backwards-compatible 변경을 도입 할 것을 기대 하시겠습니까?) – Quentin

+0

스펙을 통한 빠른 검색은 이것과 관련된 어떠한 것도 보여주지 않았지만, ** ** 추측 **은 인수가 더 이상 사용되지 않을 수 없다는 것입니다 그러나 그것은 새로운 기능으로는 지원되지 않을 것입니다. 예를 들어, 스펙에서는 rest params가 arguments 객체에 추가되지 않는다고 명시 적으로 명시합니다. 'fn (1,2,3)'함수를 호출하면 인수는'{ "0": 1, "1": 2 ...}'가됩니다. –

답변

3

아니요, 변경되지 않습니다. 이전에 arguments 개체의 모든 인덱스가 읽기 및 쓰기에 대한 각각의 매개 변수에 매핑 된 -

은 사실 이미 변경했다 (추론 할 수있는 공포를!). 이것은 많은 엔진 최적화를 막을 때 치명적인 성능 영향을 미쳤으며, ES5에서는 더 이상 사용되지 않습니다 (호환성을 위해 새로운 엄격 모드에서만). ES6에서 매개 변수 목록에 새 ES6 기능 (예 : 구조화, 기본 초기화 프로그램 또는 나머지 구문)을 사용하면 부작용 모드 기능에서도 비헤이비어가 더 이상 사용되지 않습니다.

arguments 개체는 함수에 전달 된 인수 값이있는 just a simple object입니다. 기본값은 전달되지 않으며, 함수 본문의 시작 부분에서 변수를 초기화하기위한 문법적 설탕 일뿐입니다.
범위 변수에 매핑 된 경우 much more complicated입니다.