찾다

 >  Q&A  >  본문

javascript - 미리 정의된 클래스 변환 상속에 대한 Babel의 문제

ES6를 사용하여 Array를 상속하고 푸시 메서드를 재정의하는 클래스를 작성했습니다. 그러나 Babel을 사용하여 ES5로 변환한 후 호출된 메서드가 여전히 원래 푸시 메서드임을 확인했습니다.

.babelrc:

으아악

컴파일 전 ES6코드:

으아악

babel이 편집한 코드: ES5 으아악

실제로 ROUTE 클래스 인스턴스의 메소드가 실행되면 _createClass 메소드의 비즈니스 로직 코드는 전혀 호출되지 않고, 생성자에서 push 메소드를 오버라이드하지 않는 이상 Array의 push 메소드만 실행됩니다. .

바벨 버전:

으아악

曾经蜡笔没有小新曾经蜡笔没有小新2748일 전536

모든 응답(1)나는 대답할 것이다

  • 我想大声告诉你

    我想大声告诉你2017-05-19 10:32:16

    부분 지원
    내장 하위 클래스 가능성은 사례별로 평가해야 합니다. HTMLElement와 같은 클래스는 하위 클래스로 분류할 수 있지만 날짜, 배열, 오류와 같은 클래스는 하위 클래스로 분류할 수 없기 때문입니다. ES5 엔진의 한계.

    브라우저 엔진 제한으로 인해 Babel은 Date, Array, Error...와 같은 일부 내장 클래스의 하위 클래스를 지원하지 않으므로 필요에 따라 필요한 유형을 정의할 수 있습니다

    참고자료: https://babeljs.io/learn-es20...

    회신하다
    0
  • 취소회신하다