TypeError:this.parts [1] .reviewMoment不是函数

时间:2013-02-09 01:40:10

标签: javascript jquery backbone.js

我正在处理此错误,并且我一直收到以下错误 -

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不被视为功能?

感谢。

1 个答案:

答案 0 :(得分: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();
            }
        }
    }
  });
});