Только приступаем к работе с Backbone.js. Простое включение Backbone (версии для разработки или производства) вызывает ошибку:
Uncaught TypeError: Cannot call method 'extend' of undefined
в строке 128:
// Attach all inheritable methods to the Model prototype
_.extend(Backbone.Model.prototype, Backbone.Events,
javascript
backbone.js
Мэтт Дарби
источник
источник
Ответы:
Проблема заключалась в том, что я не загружался
underscore.js
. Я полностью пропустил эту зависимость в документации. Ага.Дальнейшее разъяснение от @tjorriemorrie: у меня было подчеркивание, но я загружал в неправильном порядке, первое подчеркивание загрузки (угадайте, что означает «зависимость» :)
Дальнейшие разъяснения на всякий случай, что это не очевидно. Порядок, в котором что-то загружается в JavaScript, связан с порядком отображения на странице. Чтобы сначала загрузить символ подчеркивания, убедитесь, что тег сценария, включающий его, стоит перед загрузочной магистралью. Как это:
источник
Жесткая зависимость только для Backbone: Underscore.js загружает скрипт underscorejs перед скриптом backbonejs
источник
Порядок тоже важен. Я получил ту же ошибку, и она не была устранена, пока я не дал underscore.js перед backbone.js.
источник