[英]Uncaught Syntax error: unexpected token ( even though function is valid
我正在嘗試制作一個Web應用程序。 我在單獨的.js文件中有一個任務控制器,該文件包含在主.html文件中:
<head>
<script src = "tasks-controller.js"></script>
</head>
和文件task-controller.js:
tasksController = function() {
var taskPage;
var initialized = false;
return
{
init: function(page) {
if(!initialized)
{
.... some manipulation with jQuery...
initialized = true;
}
}
}
} ();
回到我的主要.html文件中,在正文關閉元素之后立即調用任務控制器:
<script>
$(document).ready(function()
{
tasksController.init($('#taskPage'));
}
</script>
當我測試文件時,在Google chrome工具中,我得到Uncaught SyntaxError:Unexpected token(在task-controller.js的第8行是此行:
init: function(page)
以及上面我在調用它時未定義“ tasksController”的另一個錯誤。 對我做錯了什么建議嗎? 謝謝!
ready
方法是錯誤所在。 你錯過了)
的ready
。
請參見下面的代碼中突出顯示的代碼和注釋。
$(document).ready(function() {
tasksController.init($('#taskPage'));
}); // The ) you've missed
// ^^^
代碼中的另一個問題是return
語句。 如果將object
放到return
的下一行,它將始終返回undefined
。 自動分號插入將使代碼在return
后放入分號。
因此,就像return;
。
使用以下代碼:
tasksController = function() {
var taskPage;
var initialized = false;
return {
init: function(page) {
if (!initialized) {
....some manipulation with jQuery...
initialized = true;
}
}
};
}();
由於隱含分號,您的代碼等於:
return;
{
init: function(page) {
if(!initialized)
{
.... some manipulation with jQuery...
initialized = true;
}
}
}
返回值不返回任何內容,因此{}
創建了一個新塊。 現在您可以看到為什么有語法錯誤。
只需將第一行更改為return {
(沒有換行符),就可以了。
請參閱最奇怪的語言功能 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.