簡體   English   中英

未捕獲的語法錯誤:意外的令牌(即使函數有效

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM