TypeError:a.apply不是函数

时间:2013-04-30 12:54:28

标签: javascript backbone.js

我正在关注一个为初学者提供的backbone.js教程,而且我遇到了第一个障碍。我在firebug中遇到错误TypeError: a.apply is not a function(Firefox 20.0.1)。 我有以下代码:

<!DOCTYPE html>
<html lang="en">
<head>
<title>Backbone Test</title>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.1.1/css/bootstrap.min.css" />
<meta charset="utf-8" />
</head>
<body>

    <div class="container">
        <h1>User Manager</h1>
        <hr />
        <div class="page"></div>
    </div>

    <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.2/underscore-min.js" type="text/javascript"></script>   
    <script src="//cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.2/backbone-min.js" type="text/javascript"></script>
    <script>
        var Router = new Backbone.Router.extend({
            routes: {
                '': 'home'
            }    
        });

        var router = new Router();

    </script>

</body>
</html>

我正在使用这些旧版本的 jquery 下划线骨干,因为它们是本教程中使用的版本。我尝试使用所有的当前版本,我得到一个类似的错误:“TypeError: .apply不是一个函数”。

创建路由器实例时会发生错误,即上面的行var router = new Router();

错误与我的设置有关吗? WAMP,或代码,或库?我无法理解它,因为它与tutorial的字母相同。

1 个答案:

答案 0 :(得分:20)

更改

    var Router = new Backbone.Router.extend({

    var Router = Backbone.Router.extend({

当你扩展这些类时,你只需要调用extend,它将返回稍后你将调用new的构造函数。