使用Backbone.Model作为es6类

时间:2015-03-14 09:57:41

标签: javascript backbone.js ecmascript-6

我试图将Backbone.Model用作ES6类。这是我的代码:

import Backbone from 'backbone';
import $ from 'jquery';
Backbone.$ = $;

class DataManager extends Backbone.Model {
    url() {
        return 'api.json';
    }
    parse(data) {
        console.log(data);
        return data;
    }
    constructor() {
        this.fetch()
    }
}

export default DataManager;

api.json是一个简单的json文件,包含:{test:1}

fetch调用成功获取数据(解析方法console.log显示它)但是我收到以下错误:

Uncaught TypeError: Cannot read property 'test' of undefined

如果我切换到es5语法,代码可以工作:Backbone.Model.extend({...});

有人可以解释一下吗?

2 个答案:

答案 0 :(得分:2)

您需要从构造函数内部调用super(),以便调用父类的构造函数。

答案 1 :(得分:1)

不要执行从构造函数中获取的行为。它被放在一个方法中供你在构造函数中的任何地方使用。首先,您创建一个对象然后告诉它做了什么。在创建它时不要让它开始。