我正在使用以下命名空间方案开发一个项目:
var abc = {};
abc.models = {};
abc.views = {};
abc.models.Collection = Backbone.Collection.extend({});
当我试图创建新集合时,我收到以下错误
var collection = new abc.models.Collection({this:"that"});
TypeError: Object #<Object> has no method '_reset'
当我将构造函数移动到 abc.Collection
时,错误停止了,一切都开始按需要工作。
有人可以帮我理解这是为什么吗?
我还应该补充一点,这是多文件应用程序的一部分,其中每个文件都包含以下内容:
(function($, abc){
//module contents here
}(jQuery, abc));
最佳答案
这有效:
var abc = {};
abc.models = {};
abc.views = {};
abc.models.Collection = Backbone.Collection.extend({});
var collection = new abc.models.Collection([], {});
而此行程为 Uncaught TypeError: Object #<Object> has no method '_reset'
:
var abc = {};
abc.models = {};
abc.views = {};
abc.models.Collection = Backbone.Collection.extend({});
var collection = abc.models.Collection([], {});
区别在于不使用 new
调用构造函数.
关于javascript - 深度嵌套的backbone.js对象会导致错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12057017/