0

私はこのバグに取り組んでおり、次のエラーが発生し続けます -

TypeError: this.parts[1].reviewMoment is not a function

jQuery とバックボーンを使用しています。残念ながら、私は JS に詳しくないので、なぜこの行が壊れたのかわかりません。

define([
    "jquery",
    "underscore",
], function($, _) {

    reviewMoment: function(place) {
         this.collection.bind("add", _.once(_.bind(this.triggerReview, this)));
         this.collection.addMomentByPlace(place);
     },
     triggerReview: function() {
         this.parts[(this.matchView ? 2 : 1)].reviewMoment();
         if(this.matchView) {
             this.matchView.search.close();
         }
     }
  });
});

reviewMoment関数と見なされないのはなぜですか?

ありがとう。

4

1 に答える 1

0

表記{}を使用できるオブジェクトリテラルを実際に作成していないため、これは関数ではありません。identifier:property有効な関数定義を作成するには、関数の周囲にオブジェクトリテラルを含むreturnステートメントを配置します。

define([
    "jquery",
    "underscore",
], function($, _) {
    return {
        reviewMoment: function(place) {
            this.collection.bind("add", _.once(_.bind(this.triggerReview, this)));
            this.collection.addMomentByPlace(place);
        },
        triggerReview: function() {
            this.parts[(this.matchView ? 2 : 1)].reviewMoment();
            if(this.matchView) {
                this.matchView.search.close();
            }
        }
    }
  });
});
于 2013-02-09T02:26:05.537 に答える