无法理解为什么我的函数不是函数?

Can't figure why my function is not a function?

我正在尝试构建一个简单的单页 Web 应用程序,但我被卡住了。我正在尝试使用 module pattern :

var spa = (function () {
    var initModule = function( $container ) {
        $container.html(
            '<h1 style="display:inline-block; margin: 25px;">'
                + 'hello world!'
            + '</h1>'
        );
    };

    return { initModule: initModule };
})();   

理论上应该在此处调用:

<!doctype html>
<html>
<head>
    <title>SPA Starter</title>

    <!-- stylesheets -->
    <link rel="stylesheet" type="text/css" href="css/spa.css" />
    <link rel="stylesheet" type="text/css" href="css/spa.shell.css" />

    <!-- third-party javascript -->
    <script src="js/jq/jquery-1.11.3.js">        </script>
    <script src="js/jq/jquery.uriAnchor-1.1.3.js"</script>

    <!-- my Javascript -->
    <script src="js/spa.js">      </script>
    <script src="js/spa.shell.js"></script>
    <script>

        $(function() { spa.initModule( $('#spa') ); });

    </script>
</head>
<body>
    <div id="spa"></div>
</body>
</html>

我尝试在控制台中执行 spa.initModule( $('#spa') ); 并且可以正常工作,但在我的代码中却不行。

当我尝试 运行 我得到 Uncaught TypeError: spa.initModule is not a function

提前致谢。

http://jsfiddle.net/AlexeiTruhin/4rg0mdgb/ - 适合我。

这意味着你有一个错误,例如在声明脚本时:

<script src="js/jq/jquery.uriAnchor-1.1.3.js"</script>

关闭<脚本..>

好吧,我遇到了同样的错误,但原因不同

我没有在"}"和");之间插入"()"在 spa 对象定义的末尾。