Babel이 가져온 함수 호출을 엄격 모드에서 다시 작성하는 이유
엄격 모드에서 Babel은 가져온 함수 호출을 발견하면 다음을 포함하도록 다시 작성합니다. 아래 예에서 볼 수 있는 쉼표 연산자:
import { a } from 'b'; function x () { a() }
컴파일된 엄격 모드의 출력은 다음과 같습니다.
'use strict'; var _b = require('b'); function x() { (0, _b.a)(); }
이 변환을 통해 가져온 함수는 이 설정을 전역 개체로 설정하여 호출됩니다(엄격 모드가 활성화된 경우 정의되지 않음). 쉼표 연산자가 없으면 가져온 함수는 이 모듈을 해당 모듈에 설정하여 호출됩니다.
쉼표 연산자 설명
쉼표 연산자(,)가 사용됩니다. 쉼표로 구분된 여러 표현식을 평가하는 JavaScript입니다. 마지막 표현식의 값을 반환합니다. 다시 작성된 코드에서는 쉼표 연산자가 다음과 같이 사용됩니다.
(0, _b.a)();
이는 다음 코드와 동일합니다.
0; // Ignore result var tmp = _b.a; tmp();
첫 번째 표현식 0은 무시됩니다. 두 번째 표현식 _b.a는 가져온 함수를 tmp 변수에 할당합니다. 세 번째 표현식인 tmp()는 이 설정을 전역 객체(또는 엄격 모드에서는 정의되지 않음)로 설정하여 가져온 함수를 호출합니다.
Babel은 쉼표 연산자를 사용하여 가져온 함수가 항상 다음과 같이 호출되도록 합니다. 실행 컨텍스트에 관계없이 이 값을 수정하세요.
위 내용은 엄격 모드에서 가져온 함수를 호출할 때 Babel이 쉼표 연산자를 추가하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!