Backbone.js: `extend` undefined?

Просто начните работу с Backbone.js. Простое использование Backbone (либо dev/производственные версии) вызывает ошибку:

Uncaught TypeError: Cannot call method 'extend' of undefined в строке 128:

// Attach all inheritable methods to the Model prototype
_.extend(Backbone.Model.prototype, Backbone.Events, 

Ответ 1

Проблема заключалась в том, что я не загружал underscore.js. Я полностью пропустил эту зависимость в документах. Duh.

Дальнейшие разъяснения от @tjorriemorrie: У меня был знак подчеркивания, но был загружен не в том порядке, первый подчеркивание нагрузки (предположим, что это означает "зависимость":)


Дальнейшее разъяснение на всякий случай это не очевидно. Порядок загрузки вещей в JavaScript связан с порядком отображения на странице. Чтобы сначала загрузить знак подчеркивания, убедитесь, что тег script, включая его, находится перед одной базой загрузки. Вот так:

<script src="underscore-1.4.4-min.js"></script>
<script src="backbone-1.0.0-min.js"></script>

Ответ 2

Тяжелая зависимость от базовой линии - Underscore.js load underscorejs script перед backbonejs script

Ответ 3

Приказ также важен. Я получил ту же ошибку, и она не была разрешена, пока я не дал underscore.js перед backbone.js.

<script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.3.3/underscore-min.js" type="text/javascript"></script>
  <script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.2/backbone-min.js" type="text/javascript"></script>