使用 Backbone.Model 作为 es6 class
Using Backbone.Model as es6 class
我正在尝试将 Backbone.Model 用作 ES6 class。这是我的代码:
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({...});
谁能解释一下?
您需要从构造函数内部调用 super()
才能调用父 class 的构造函数。
不要执行类似从构造函数中获取的行为。它被放在一个方法中,供您在构造函数中以外的任何地方使用。首先创建一个对象,然后告诉它做什么。创建它时不要让它启动。
我正在尝试将 Backbone.Model 用作 ES6 class。这是我的代码:
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({...});
谁能解释一下?
您需要从构造函数内部调用 super()
才能调用父 class 的构造函数。
不要执行类似从构造函数中获取的行为。它被放在一个方法中,供您在构造函数中以外的任何地方使用。首先创建一个对象,然后告诉它做什么。创建它时不要让它启动。