0

私の問題は、javascript でモデルのオブジェクトを作成したいということです。backbone.js を使用します。モデル オブジェクトをグローバルに共有したいのは、多くの js ファイルでそのオブジェクトが必要なためです。

 (function(){
     this.mymodel=Backbone.Model.extend({
            ----
            ----
     });
  return{
            var colobj = new mymodel;
  }
})

次のように、別のjsファイルで「colobj」オブジェクトを共有しています

(function(){
     var collectionobj = new colobj;
 });

しかし、これにより、この例で何が間違っているのかというエラーが表示されます

4

2 に答える 2

1

まず、次の行を変更する必要があります。

var colobj = new mymodel;

var colobj = new this.mymodel;

問題は、それmymodelが未定義であり、それが問題の根源であった可能性があるということです。

さらに、最初のcolobjものはモデルのインスタンスであるため、コンストラクターではなくオブジェクトです。そのため、2 回目にインスタンス化しようとすると、次のようになります。

var collectionobj = new colobj;

ブラウザは次のようなことをしていると見なすため、エラーがスローされます。

var collectionobj = new (new mymodel);

あるクロージャーから別のクロージャーにモデル定義のみを渡すことをお勧めします。

//...
return{
        var colobj = this.mymodel;
}
//...

更新
以前にこれを見逃していたことに非常に驚いています。
無効なオブジェクトを返しています:

{var colobj = new mymodel;}

colobjおそらく、モデルの値でプロパティをハッシュするオブジェクトを返すつもりだったと思います。その場合は、このオブジェクトを返すだけです:

{colobj : this.mymodel};
于 2012-06-06T12:33:38.703 に答える