我正在关注一个为初学者提供的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的字母相同。
答案 0 :(得分:20)
更改
var Router = new Backbone.Router.extend({
到
var Router = Backbone.Router.extend({
当你扩展这些类时,你只需要调用extend
,它将返回稍后你将调用new
的构造函数。