Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Backbone.js: `extend` undefined?

Just getting started with Backbone.js. Simply including Backbone (either dev/production versions) causes the error:

Uncaught TypeError: Cannot call method 'extend' of undefined on Line 128:

// Attach all inheritable methods to the Model prototype _.extend(Backbone.Model.prototype, Backbone.Events,  
like image 248
Matt Darby Avatar asked Feb 02 '11 14:02

Matt Darby


1 Answers

The issue was that I wasn't loading underscore.js. I totally missed that dependency in the docs. Duh.

Further clarification from @tjorriemorrie: I had underscore, but loaded in the wrong order, first load underscore (guess that is what 'dependency' means :)


Further Clarification just in case this isn't obvious. The order that things are loaded in JavaScript relates to the order the show up on the page. To load underscore first, be sure that the script tag including it comes before the one loading backbone. Like this:

<script src="underscore-1.4.4-min.js"></script> <script src="backbone-1.0.0-min.js"></script> 
like image 164
Matt Darby Avatar answered Sep 23 '22 16:09

Matt Darby