4

Если следующий передаются в Google code closure:Почему это вызывает ошибку «недопустимый синтаксис» с компилятором Google Closure?

return (function() { 
    return true; 
})(); 

он говорит, что это ошибка синтаксического анализа из-за неправильный синтаксис. В чем может быть проблема?

+1

Обратите внимание, что вы не * возвращение * анонимную функцию, но создание и * вызывающему * анонимная функция. Поэтому этот оператор эквивалентен просто «return true». – maerics

ответ

4

Если это ваш код всего, проблема в том, что вы не можете иметь оператор return (первый) вне определения функции. Попробуйте:

function foo() { 
    return (function() { 
     return true; 
    })(); 
} 
+0

Согласовано. Вы можете использовать выходной вывод компилятора, если вы пытаетесь оптимизировать выражение. Что-то вроде: --output_wrapper = "return% output%" – John

3

Проблема, кажется, что вы используете return в качестве верхнего уровня конструкции (вне любой функции тела). Вы должны обернуть его в контексте, в котором return действует:

var example = function() { 
    return (function() { 
    return true; 
    })(); 
}; 
Смежные вопросы