2013-04-12 2 views
0

나는 다음과 같은 오류 받고 있어요 :catch되지 않은 구문 에러 : 예기치 않은 토큰 (

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); 
     } 
    }); 
}; 

가 질식 몇 가지 이유 :

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

여기 /timeline/scripts/collections/events.js의를 function() {에 내가 왜 작동하지 않을 수 있습니다. 이것은 전체 문서입니다.이게 뭐가 잘못 됐는지 설명 할 수있는 사람은 누구입니까?

답변

1

Functi 선언에, 함수 표현식이 아닙니다. 함수 선언에는 이름이 있어야합니다.

function foo() { 
    return Backbone.Collection.extend({ 
+0

감사합니다. 이것을로드하기 위해 require.js를 사용하고 익명의 함수를 사용하는 사람들의 다른 예를 보았습니다 ... 다시 그리기 보드로 돌아갑니다. –

+0

일반적으로 require JS를 사용할 때, 파일은 함수 표현식이 인수로 전달 된'define' 메소드에 대한 호출로 구성됩니다. 함수를 파일에 그냥 두지 않아도됩니다. – Quentin

+0

내가 따라야 할 튜토리얼에 흥미를 끄는 것은 생략해야하지만 실제로 문제를 해결합니다. Thanks x 2 –

0

익명 함수를 호출하지 않고 선언 할 수 없습니다.

+0

익명 함수를 "선언"할 수는 없습니다. 즉시 호출 되더라도 구문 오류입니다. 선언이 아닌 표현식으로 파싱되어야합니다. –

0

하나의 구문 검사기가 유용한 오류 메시지를 표시하지 않으면 다른 구문 검사기를 사용하십시오.

저는 대개 Chrome 개발자 도구의 팬이지만이 경우 Chrome은 매우 좋은 오류 메시지를 표시하지 않습니다. 그래서 나는 파이어 폭스로 코드를 붙여했는데, 그것은 더 도움이 많은 했다 : 나는 라이브 구문 편집하면서 점검을 가지고 Komodo에 코드를 붙여 같은 오류 메시지를 받았습니다

SyntaxError: function statement requires a name 
    function() { 

. (코모도는 파이어 폭스를 기반로하기 때문에 메시지가 똑같은 것은 당연한 일이다.)

도움이되지 않을 때 다른 도구를 사용해 보는 것이 좋습니다.

관련 문제