Javascript 在todomvc依赖关系示例中,为什么新运算符用于集合
我正在阅读todomvc主干,注意到“new”操作符用于创建新集合,但是视图、模型和路由器返回对象本身 为什么收集需要新的操作员 收藏Javascript 在todomvc依赖关系示例中,为什么新运算符用于集合,javascript,backbone.js,todomvc,Javascript,Backbone.js,Todomvc,我正在阅读todomvc主干,注意到“new”操作符用于创建新集合,但是视图、模型和路由器返回对象本身 为什么收集需要新的操作员 收藏 /*global define */ define([ 'underscore', 'backbone', 'backboneLocalstorage', 'models/todo' ], function (_, Backbone, Store, Todo) { 'use strict'; var TodosCollectio
/*global define */
define([
'underscore',
'backbone',
'backboneLocalstorage',
'models/todo'
], function (_, Backbone, Store, Todo) {
'use strict';
var TodosCollection = Backbone.Collection.extend({
// Reference to this collection's model.
model: Todo,
// Save all of the todo items under the `"todos"` namespace.
localStorage: new Store('todos-backbone'),
// Filter down the list of all todo items that are finished.
completed: function () {
return this.where({completed: true});
},
// Filter down the list to only todo items that are still not finished.
remaining: function () {
return this.where({completed: false});
},
// We keep the Todos in sequential order, despite being saved by unordered
// GUID in the database. This generates the next order number for new items.
nextOrder: function () {
return this.length ? this.last().get('order') + 1 : 1;
},
// Todos are sorted by their original insertion order.
comparator: 'order'
});
return new TodosCollection();
});
型号
/*global define*/
define([
'underscore',
'backbone'
], function (_, Backbone) {
'use strict';
var Todo = Backbone.Model.extend({
// Default attributes for the todo
// and ensure that each todo created has `title` and `completed` keys.
defaults: {
title: '',
completed: false
},
// Toggle the `completed` state of this todo item.
toggle: function () {
this.save({
completed: !this.get('completed')
});
}
});
return Todo;
});
当一个模块返回一个
new Object()
时,它被认为是一个单例,因为缓存将不允许再次加载同一个模块
因此,我假设您正在查看的集合对象是单例对象。它已经被实例化,所以您不需要这样做
是我想你要问的文件
此外,这并不一定是必需的,它只是一个架构决策 请发布具体代码。如果我只使用“return TodosCollection;”,我会得到“TypeError:obj[implementation]不是函数”错误谢谢这是有道理的。我仍然不完全理解,如果在这种情况下不使用单例模式,为什么它不起作用,但也许我需要更久地关注它。