有人可以解释以下之间的根本区别:
define(['backbone'], function(Backbone) {
MyModel = Backbone.Model.extend({
});
});
define(['backbone', 'models/mymodel'], function(Backbone){
var app = Backbone.View.extend({
initialize: function() {
var model = new MyModel();
}
});
});
和:
define(['backbone'], function(Backbone) {
var MyModel = Backbone.Model.extend({
});
return MyModel;
});
define(['backbone', 'models/mymodel'], function(Backbone, MyModel){
var app = Backbone.View.extend({
initialize: function() {
var model = new MyModel();
}
});
});
在前者中,第一个模块简单地定义了 MyModel。在后者中,它被创建为变量并返回,第二个模块需要在导入时将其放入参数中。
我看到的 RequireJS 示例似乎在两者之间有所不同,但我并不真正理解其中的区别——一个返回实例而另一个返回构造函数?
在我的应用程序中,我什至没有注意到我实际上在不同的地方使用了两种方式,我认为这会导致问题。我用了很多
self = this
self.model.doSomething
在我的视图和模型中,随着我的应用程序变大,我开始出现错误,因为与 self 的定义存在冲突。