Backbone:ECMAScript 6 中的属性
Backbone: properties in ECMAScript 6
我正在寻找与以下 Backbone 代码等效的良好 ECMAScript 6:
var MyModel = Backbone.Model.extend({});
var MyCollection = Backbone.Collection.extend({
model: MyModel
});
此模式广泛用于 Backbone 模型、视图和集合。 我可以比下面的代码做得更好吗(例如,通过创建一个名为 "model" 的方法)?
export class MyModel extends Backbone.Model {}
export class MyCollection extends Backbone.Collection {
constructor() {
super({model: MyModel});
}
}
当然,只要不使用class
关键字即可:
var MyModel = Backbone.Model.extend({});
var MyCollection = Backbone.Collection.extend({
model: MyModel
});
这段代码实际上比您编写的 ECMAScript 6 等效代码更可重用。 ECMAScript 6 实际上比原来的差。
您必须了解,在 JavaScript 中,对象可以在没有 类 的情况下存在,并且该功能非常重要。
这是 Douglas Crockford 在 2008 年写的关于原型继承的文章:http://javascript.crockford.com/prototypal.html
我会使用 getter:
export class MyModel extends Backbone.Model {}
export class MyCollection extends Backbone.Collection {
get model() {
return MyModel;
}
}
我正在寻找与以下 Backbone 代码等效的良好 ECMAScript 6:
var MyModel = Backbone.Model.extend({});
var MyCollection = Backbone.Collection.extend({
model: MyModel
});
此模式广泛用于 Backbone 模型、视图和集合。 我可以比下面的代码做得更好吗(例如,通过创建一个名为 "model" 的方法)?
export class MyModel extends Backbone.Model {}
export class MyCollection extends Backbone.Collection {
constructor() {
super({model: MyModel});
}
}
当然,只要不使用class
关键字即可:
var MyModel = Backbone.Model.extend({});
var MyCollection = Backbone.Collection.extend({
model: MyModel
});
这段代码实际上比您编写的 ECMAScript 6 等效代码更可重用。 ECMAScript 6 实际上比原来的差。
您必须了解,在 JavaScript 中,对象可以在没有 类 的情况下存在,并且该功能非常重要。
这是 Douglas Crockford 在 2008 年写的关于原型继承的文章:http://javascript.crockford.com/prototypal.html
我会使用 getter:
export class MyModel extends Backbone.Model {}
export class MyCollection extends Backbone.Collection {
get model() {
return MyModel;
}
}