Javascript 如何销毁BackboneFactory中创建的对象及其存储位置?
这是的源,相当于: 看起来在经过一些复杂的逻辑之后,create方法将创建一个我们在主干中定义的模型的新对象。如果我们有一个Javascript 如何销毁BackboneFactory中创建的对象及其存储位置?,javascript,backbone.js,factory,backbone-model,Javascript,Backbone.js,Factory,Backbone Model,这是的源,相当于: 看起来在经过一些复杂的逻辑之后,create方法将创建一个我们在主干中定义的模型的新对象。如果我们有一个User模型,Backbone.create(User)将创建一个新的用户对象 这些对象存储在哪里 它们是否与生产共享同一数据库 如果在内存中,它们最终会被垃圾收集吗 简而言之,我关心的是在运行测试套件时这些对象会发生什么 如果我们有一个用户模型主干。创建(用户)将创建一个新的 用户对象 它是BackboneFactory.create('user'),仅当您以前使用B
User
模型,Backbone.create(User)
将创建一个新的用户对象
- 这些对象存储在哪里
- 它们是否与生产共享同一数据库
- 如果在内存中,它们最终会被垃圾收集吗李>
用户
模型<代码>主干。创建(用户)将创建一个新的
用户对象
它是BackboneFactory.create('user')
,仅当您以前使用BackboneFactory.define('user',user)为user
定义了工厂时,它才起作用代码>
这些对象存储在哪里
在全局BackboneFactory对象的以下属性中:
factories: {},
sequences: {},
它们是否与生产共享同一数据库
这与此无关,因为工厂只返回您已经定义的模型类中的模型实例
假设您有此型号:
var User = Backbone.Model.extend({
urlRoot: "api/user",
defaults: {
name: "Foo",
randomNumber: 4
}
});
使用工厂实例化:
BackboneFactory.define('user', User);
// somewhere later
var instance = BackboneFactory.create('user', { name: "bar" });
与手动实例化相同
var instance = new User({ name: "bar" });
如果在内存中,它们最终会被垃圾收集吗
看起来它并没有提供一个简单的删除工厂的功能,但它并没有真正的用处,因为你创建工厂是为了在你的应用程序中使用它们
您可以手动删除工厂哈希和/或序列:
BackboneFactory.factories = {};
BackboneFactory.sequences = {};
但我不会在正常用例中这样做,除非出现特定的问题。对于测试套件,可能这是“重置”BackboneFactory对象的最简单方法
话虽如此,我不会按原样使用那个图书馆。有很多好主意,但是对于这样一个简单的库,代码缺少很多改进。一个最大的禁忌是默认情况下它是全局的,并且不可能创建BackboneFactory
的不同实例。它有一个问题。我看到你在这一次之后还问了其他问题。你对我的回答有什么顾虑吗?
BackboneFactory.factories = {};
BackboneFactory.sequences = {};