9

我正在关注一个针对初学者的bones.js 教程,但我遇到了第一个障碍。我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: i .apply is not a function”。

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

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

4

1 回答 1

22

改变

    var Router = new Backbone.Router.extend({

    var Router = Backbone.Router.extend({

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

于 2013-04-30T13:09:06.037 回答