Traceur运行时:超级表达式必须为null或函数,而不是未定义

sty*_*ler 12 javascript ecmascript-6

学习ES6并直接遇到以下错误Super expression must either be null or a function, not undefined.真的不确定我的问题在哪里,如果有人能提供帮助那就太棒了.

main.js

'use strict'

import Backbone from 'exoskeleton';
import App from './views/App';


var onDOMReady = () => {
    console.log('inside dom ready');
    window.app = new App();
}

if(document.readyState === 'complete' || document.readyState === 'interactive' || document.readyState === 'loaded' ) {
    onDOMReady();
} else {
    document.addEventListener('DOMContentLoaded', onDOMReady);
}
Run Code Online (Sandbox Code Playgroud)

App.js

'use strict'

import Backbone from 'exoskeleton';

class App extends Backbone.View {

    initialize () {
        console.log('App: Init');
    }

    render () {
        console.log('App: Render');
    }

}

export default App;
Run Code Online (Sandbox Code Playgroud)

Luk*_*kas 8

我收到此错误是因为我有一个循环导入结构.一个模块导入另一个模块,反之亦然.


小智 6

Backbone.View在你的情况下可能是不确定的.产生此错误的代码段是这样的,

if (typeof parent !== "function" && parent !== null) {
  throw new TypeError("Super expression must either be null or a function, not " + typeof parent);
}
Run Code Online (Sandbox Code Playgroud)

  • 为什么不定义? (6认同)