0

我收到以下错误:

Uncaught SyntaxError: Unexpected token ( /timeline/scripts/collections/events.js?bust=1365755363650:1

这是/timeline/scripts/collections/events.js

function () {
    return Backbone.Collection.extend({
        model: Event

    ,   parse: function(data) {
            var parsed = [];
            $(data).find('Event').each(function(index) {
                parsed.push({
                    title: $(this).find('title').text()
                ,   date: $(this).find('date').text()
                ,   content: $(this).find('content').text()
                });
            });
            return parsed;
        }

    ,   fetch: function(options) {
            options = options || {};
            options.dataType = "xml";
            Backbone.Collection.prototype.fetch.call(this, options);
        }
    });
};

出于某种原因,它令人窒息,function () {但我不知道为什么。这是整个文件。谁能解释这有什么问题?

4

3 回答 3

1

你有一个函数声明,而不是函数表达式。函数声明必须有名称。

function foo () {
    return Backbone.Collection.extend({
于 2013-04-12T08:39:27.473 回答
0

您不能在不调用匿名函数的情况下声明它。

于 2013-04-12T08:39:38.417 回答
0

当一个语法检查器没有给出有用的错误消息时,请尝试另一个。

我通常是 Chrome 开发者工具的粉丝,但在这种情况下,Chrome 并没有给出很好的错误信息。所以我尝试将您的代码粘贴到 Firefox 中,它更有帮助:

SyntaxError: function statement requires a name
    function () {

通过将您的代码粘贴到Komodo中,我也收到了同样的错误消息,它在您编辑时会进行实时语法检查。(因为 Komodo 是基于 Firefox 的,所以消息是一样的也就不足为奇了。)

当一个工具没有帮助时,尝试不同的工具是值得的。

于 2013-04-12T08:46:55.823 回答