Проще объяснить себя как ответ, поэтому я продолжу и дам один.
В:
App.WordList = Backbone.Collection.extend({
initialize : function(models, options){
....
},
localStorage : new Store(options.store)
})
Это действительно немного отличается от
var newInstanceConfig = {
initialize : function(models, options){
....
},
localStorage : new Store(options.store)
}
App.WordList = Backbone.Collection.extend(newInstanceConfig);
Думайте об этом так;нет ничего волшебного в том, что объект передается в Backbone.Collection.extend(...)
.Вы просто переходите в обычный объект.Магия происходит, когда Backbone.Collection.extend
вызывается с этим объектом в качестве параметра
Таким образом, параметр параметров объекта-метода initialize
полностью отличается от того, который передается в new Store(...)
.Назначаемая функция initialize
определяет область действия опций.Кто знает, где определяется тот, о котором говорится в new Store(options.store)
.Это может быть window.options
или параметры, определенные в некоторой другой области.Если он не определен, вы, вероятно, получите ошибку
При этом я вижу только два или три стратегических варианта (о боже, простите за каламбур, пожалуйста!).
Всякий раз, когда высоздайте новый экземпляр коллекции, либо:
- Перейдите на язык и позвольте вашей коллекции Backbone создать
new Store(..)
, где это необходимо. - Предварительно создайте хранилища и передайте либоили дать конкретное желание Store этому экземпляру (либо непосредственно через его конструктор, либо, возможно, у вас есть конструктор, который "ищет" соответствующий предварительно созданный Store).
- И, наконец, я полагаю, вы могли бы делегировать задачусоздания хранилищ для другого объекта и заставить его реализовать один или два варианта.(В основном, это вроде Factory Store / Resource Manager).
Что вам нужно выяснить, - это какая из этих стратегий должна работать для вас.Я никогда не использовал localStorage, поэтому, к сожалению, я не могу помочь вам в этом.Что я могу сделать, это спросить, будет ли когда-нибудь несколько экземпляров, созданных из App.Wordlist, где могут случайно быть созданы два одинаковых магазина?
На самом деле, у меня естьДругой вопрос.где это Store
определено?Вы уверены, что это не определено где-то в одной из ваших других библиотек API, которые вы используете?Просматривая документы localStorage, о которых я знаю, упоминается что-то о Storage
конструкторе , но ничего о Store
.Так что, возможно, вы захотите это выяснить.
Редактировать # 1: Неважно, Я вижу, вы упомянули, где было определено Store
.