2

誰かが次の基本的な違いを説明できますか:

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 を定義します。後者では、変数として作成されて返され、2 番目のモジュールはインポート時にパラメーターに入れる必要があります。

私が目にする RequireJS の例は、2 つの間で異なるように見えますが、違いがよくわかりません。1 つはインスタンスを返し、もう 1 つはコンストラクターを返しますか?

私のアプリケーションでは、実際には別の場所で両方の方法を使用していることに気づきませんでした。それが問題を引き起こしていると思います。たくさん使っていました

self = this
self.model.doSomething

私のビューとモデルの内部で、アプリが大きくなるにつれて、自己の定義との競合があったため、エラーが発生し始めました。

4

2 に答える 2