我正在尝试制作一个Web应用程序。我在一个单独的.js文件中有一个任务控制器,我将其包含在主.html文件中:
<head>
<script src = "tasks-controller.js"></script>
</head>
和文件tasks-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(在tasks-controller.js的第8行,这就是这一行:
init: function(page)
以及另一个错误,即“任务控制器”&#39;我在上面调用它时没有定义。对我做错的任何建议?谢谢!
答案 0 :(得分:1)
ready
方法是错误的位置。您错过了)
的{{1}}。
请参阅以下代码中突出显示的代码和注释。
ready
代码中的其他问题是$(document).ready(function() {
tasksController.init($('#taskPage'));
}); // The ) you've missed
// ^^^
语句。如果您将return
放到object
的下一行,它将始终返回return
。
Automatic semicolon insertion会导致代码在undefined
之后加上分号。
所以,它会像return
。
使用以下代码:
return;
答案 1 :(得分:0)
由于隐含的分号,您的代码等于:
return;
{
init: function(page) {
if(!initialized)
{
.... some manipulation with jQuery...
initialized = true;
}
}
}
返回没有返回任何内容,因此{}
创建一个新块。现在您可以看到为什么会出现语法错误。
只需将第一行更改为return {
(无新行),您就应该做得很好。